zoukankan      html  css  js  c++  java
  • 如何在Rails中执行Get/Post/Put请求

    require 'open-uri'
    require 'json'
    require 'net/http'
    class CoupleController < ApplicationController
      skip_before_filter :verify_authenticity_token, :only => [:raw_data_put]
    
      def raw_date_get
        #如果有GET请求参数直接写在URI地址中
        begin
          uri = 'http://qa.services.theknot.com/registry/v1/couples/2170045'
          html_response = nil
          open(uri) do |http|
            html_response = http.read
          end
          data = JSON.parse(html_response)
          registries=data["CoupleRegistries"]
          render json: data.has_key?("Id")
        rescue (excetpion)
          render json: excetpion
        end
      end
    
      def raw_data_put
        require 'net/http'
        begin
          retailerRegistry=Hash.new()
          retailerRegistry["RetailerId"]=12160
          retailerRegistry["RetailerRegistryCode"]="cjq2I5Wc3u_zIU_QFkvy0w"
          retailerRegistry["RegistrantFirstName"]="Kelly"
          retailerRegistry["RegistrantLastName"]="Bu"
          retailerRegistry["RegistrantEmail"]="zzkelly.burch.890@gmail.com"
          retailerRegistry["CoRegistrantFirstName"]="Zacuu"
          retailerRegistry["CoRegistrantLastName"]="Wilson"
          retailerRegistry["CoRegistrantEmail"]=""
          retailerRegistry["EventDate"]="2014-11-15"
          retailerRegistry["EventTypeId"]=1
          retailerRegistry["IsDeleted"]=false
          retailerRegistry["EventDescription"]=""
          retailerRegistry["ReferralStatusCode"]=""
          retailerRegistry["EventTypeId"]=1
          retailerRegistry["City"]=""
          retailerRegistry["State"]="GA"
          retailerRegistry["Zip"]=""
          retailerRegistry["Country"]=""
          retailerRegistry["AltRetailerRegistryCode"]="TargetUCfnNSDSM"
          #port = 80
          host = 'qa.services.theknot.com'
          path = '/registry/v1/raw/retailerRegistry'
    
          req = Net::HTTP::Put.new(path, initheader = {'Content-Type' => 'application/json'})
          req.body = retailerRegistry.to_json
          response = Net::HTTP.new(host).start { |http| http.request(req) }
          puts response.code
          render json: response.code
        rescue Exception => e
          puts e.message
          puts e.backtrace.inspect
          render json: e
          #render json: '{"result":"failed"}'
        end
      end
    
      def raw_data_post
        begin
          affiliate=Hash.new()
          affiliate["Id"]=2
          affiliate["Name"]="Test0003"
          affiliate["AffiliateCode"]="Test0003"
          affiliate["AffiliateUrl"]="Test0003"
          affiliate["Description"]="Test0003"
          host = 'qa.services.theknot.com'
          path = '/registry/v1/affiliates'
          req = Net::HTTP::Post.new(path, initheader = {'Content-Type' => 'application/json'})
          req.body = affiliate.to_json
          response = Net::HTTP.new(host).start { |http| http.request(req) }
          puts response.code
          render json: response.body
        rescue Exception => e
          puts e.message
          puts e.backtrace.inspect
          render json: e.message
        end
      end
     end
    
     

    Routes:

     get 'couple/raw_data_get'
      put 'couple/raw_data_put'
      get 'couple/raw_data_post'

  • 相关阅读:
    读取 classes下的配置文件
    java中Class.getResource用法(用于配置文件的读取)
    windows 中 到底是用的哪个java.exe??? 删除了PATH变量的Java设置还是可以运行java.exe windows/system32
    mysql中null与“空值”的坑
    innodb架构理解
    mysql5.7性能提升一百倍调优宝典
    servlet 3.0笔记之servlet的动态注册
    前端性能优化建议
    了解CSRF攻击原理和预防
    vue的热更新配置
  • 原文地址:https://www.cnblogs.com/mawenzhu/p/3929067.html
Copyright © 2011-2022 走看看