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'

  • 相关阅读:
    AxureRP的学习
    http状态码的含义
    10.mongoDB给所有文档添加字段
    ip正则匹配
    express使用socketIO,前后端跨域
    express后端配置,实现跨域
    https带来的express后台部署到服务器所引发的问题
    前台:VueSocketIOExt+socket.io-client,后台socket.io的聊天环境搭载
    即时通讯框架SocketIO
    9.mongoDB新增文档,若文档已存在,则不新增,若文档不存在,则新增
  • 原文地址:https://www.cnblogs.com/mawenzhu/p/3929067.html
Copyright © 2011-2022 走看看