如何在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"]="[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

如何在Rails中执行Get/Post/Put请求的相关文章

如何在Java中执行Hive命令或HiveQL

这里所说的在Java中执行Hive命令或HiveQL并不是指Hive Client通过JDBC的方式连接HiveServer(or HiveServer2)执行查询,而是简单的在部署了HiveServer的服务器上执行Hive命令.当然这是一个简单的事情,平常我们通过Hive做简单的数据分析实验的时候,都是直接进入Hive执行HiveQL,那我们为什么还要在程序中执行呢? 这里涉及到了一个问题,通过进入Hive执行HiveQL,我们只能将分析结果打印到屏幕或是存入临时表,那如果我们想吧分析结果写

如何在linux中执行一个脚本

---恢复内容开始--- 如何在LINUX中在系统启动时自动执行一个执行脚本 如果是开机马上执行的脚本,可以将脚本写到rc.local中: 如果是用户登录后自动执行脚本,可以将脚本写到相应的用户目录下"-/.bash_profile",若脚本"-/.bash_profile"不存在,可以直接拷贝"/etc/profile"命名为"-/.bash_profile": 如果是要任一用户登录后自动执行脚本,可以将脚本写到"

如何在 Rails 中搭配 Turbolinks 使用 Vue

[Rails] Vue-outlet for Turbolinks 在踩了 Rails + Turbolinks + Vue 的許多坑後,整理  的作法並和大家分享. Initialize the App # initialize the app rails new rails_sandbox_vue --database=postgresql --webpack=vue # install package bundle yarn Scaffold the app # Scaffold the

【转】如何在 Windows 中执行干净启动

完成故障排除后,请执行以下步骤将计算机重置为正常启动. Windows 8.1 和 Windows 8 从屏幕右边缘滑入,然后点按“搜索”.您也可以将鼠标指向屏幕的右下角,然后单击“搜索”. 在搜索框中键入 msconfig,然后点按或单击“msconfig”. 在“常规”选项卡上,点按或单击“正常启动”选项. 点按或单击“服务”选项卡并清除“隐藏所有 Microsoft 服务”旁的复选框,然后点按或单击“全部启用”. 接下来,点按或单击“启动”选项卡,然后点按或单击“打开任务管理器”. 在任务

如何在notepad++中执行python脚本?

cmd /k cd /d "$(CURRENT_DIRECTORY)" & python "$(FULL_CURRENT_PATH)" & ECHO. & PAUSE & EXIT cmd /k: 表示打开cmd窗口,运行/k后边的命令,并且执行完毕后保留窗口 cd /d "$(CURRENT_DIRECTORY)":cd /d切换目录到$(CURRENT_DIRECTORY)& :用来连接多条命令pyth

关于如何在MVC中 执行JS

Response.Write("<script>KHTPREFERENCE()</script>"); return this.MessageResult(true, "上传成功!"); 如上可以直接使用response.write

让你提前认识软件开发(23):如何在C语言中执行shell命令?

第1部分 重新认识C语言 如何在C语言中执行shell命令? [文章摘要] Linux操作系统具备开源等诸多优秀特性,因此在许多通信类软件(主流开发语言为C语言)中,开发平台都迁移到了Linux上,同时shell操作在Linux的编程中占有很重要的地位,这就需要开发人员熟练掌握在C语言中执行shell命令的相关操作. 本文用实际的代码演示了如何在C语言程序中执行shell命令,为相关软件开发工作的开展提供了参考. [关键词] Linux  C语言  shell  命令  开发 一.程序执行流程

如何在 Navicat Premium 中执行数据库范围搜索

有好多朋友在使用Navicat Premium12过程中会出现各种各样的问题,到底Navicat Premium 该怎么用呢?小编就如何在 Navicat Premium 中执行数据库范围搜索这一问题,给大家具体讲解一下!Navicat Premium Essentials for mac(数据库管理软件)立即下载Navicat Premium Essentials for mac(数据库管理软件)Navicat Premium 是一套数据库开发工具,让你从单一应用程序中同时连接 MySQL.M

如何在Ruby中编写微服务?

[编者按]本文作者为 Pierpaolo Frasa,文章通过详细的案例,介绍了在Ruby中编写微服务时所需注意的方方面面.系国内 ITOM 管理平台 OneAPM 编译呈现. 最近,大家都认为应当采用微服务架构.但是,又有多少相关教程呢?我们来看看这篇关于用Ruby编写微服务的文章吧. 人人都在讨论微服务,但我至今也没见过几篇有关用Ruby编写微服务的.像样的教程.这可能是因为许多Ruby开发人员仍然最喜欢Rails架构(这没什么不好,Rails本身也没什么不好,但是Ruby可以做到的事还有很