繁体   English   中英

在Ruby中执行http GET和POST请求

[英]Performing http GET and POST request in Ruby

我是Ruby on Rails的新手,我想执行HTTP GET和HTTP POST请求。 对于HTTP GET,我已经进行了编码,并且工作正常, 但是对于HTTP POST,我无法弄清楚

以下是http GET的代码段:

require "net/http"
require "uri"

uri = URI.parse("http://www.adobe.com")

http = Net::HTTP.new(uri.host, uri.port)
request = Net::HTTP::Get.new(uri.request_uri)
response = http.request(request)
puts response.body

我使用了以下之一,您可以同时使用get和post。

def invoke_webservice url
query_string = url[:query_string].blank? ? "" : url[:query_string].map{ |key, value|
                 "#{key}=#{CGI.escape(value)}" }.join("&").insert(0, "?")
url[:class] = url[:class].blank? ? "" : url[:class]
webservice_uri = URI.join(APP_CONFIG['webservice_uri_format'], '/application/',
                   url[:class], url[:action], query_string)
uri = URI.parse(webservice_uri.to_s)
http = Net::HTTP.new(uri.host, uri.port)
#http.use_ssl = true
#http.verify_mode =  OpenSSL::SSL::VERIFY_NONE
http.open_timeout = 25
http.read_timeout = 500
http.start do |http|
  if url[:method] == 'get'
    request = Net::HTTP::Get.new(uri.request_uri)
  else
    request = Net::HTTP::Post.new uri.path, initheader = { 'Content-Type' => 'application/json' }
    request.body = url[:data].to_json
  end
  request.basic_auth APP_CONFIG['username'], APP_CONFIG['password']
  response = http.request request
  JSON.parse(response.body) if response.code =~ /^2\d\d$/
end
  rescue => e
puts "Error Message is #{e.inspect} #{e.backtrace}"
  end  
end

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM