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"]="[email protected]" 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‘
如何在Rails中执行Get/Post/Put请求
时间: 2024-09-30 19:11:03