首页 > 代码库 > 如何在Rails中执行Get/Post/Put请求

如何在Rails中执行Get/Post/Put请求

require open-urirequire jsonrequire net/httpclass 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‘