首页 > 编程 > Ruby > 正文

Ruby程序中发送基于HTTP协议的请求的简单示例

2020-10-29 19:36:08
字体:
来源:转载
供稿:网友

1. 建立HTTP连接(通过GET方式发送请求参数)

require "open-uri"  #如果有GET请求参数直接写在URI地址中  uri = 'http://uri'  html_response = nil  open(uri) do |http|  html_response = http.read  end  puts html_response  require "open-uri" #如果有GET请求参数直接写在URI地址中 uri = 'http://uri' html_response = nil open(uri) do |http| html_response = http.read end puts html_response 

2. 通过POST发送请求参数

params = {}  params["name"] = 'Tom'  uri = URI.parse("http://uri")  res = Net::HTTP.post_form(uri, params)  #返回的cookie  puts res.header['set-cookie']  #返回的html body  puts res.body  params = {} params["name"] = 'Tom' uri = URI.parse("http://uri") res = Net::HTTP.post_form(uri, params)  #返回的cookie puts res.header['set-cookie'] #返回的html body puts res.body 

3.HTTPS请求

# # 描述: #  发送快递数据到datasystem,使用https # 输入: #  data  - 组装后的expess的数据 # 输出: #  datasystem返回的状态信息 # def self.senddatassl(url,data)  url = url + data  $logger.info(url)  begin   uri = URI.parse(URI.escape(url))   http = Net::HTTP.new(uri.host, uri.port)   http.use_ssl = true      if ($logger != nil)    $logger.info("链接地址参数:#{URI.escape(url)},文件名:#{__FILE__},第 #{__LINE__} 行")    $logger.info("传入data参数:#{data.to_json},文件名:#{__FILE__},第 #{__LINE__} 行")   end   request = Net::HTTP::Get.new(uri.request_uri)      response = http.request(request)  rescue =>exception   $logger.error("传递url地址为#{url},错误!#{exception.to_s},文件名:#{__FILE__},第 #{__LINE__} 行")   return nil  end  return response.body end 

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表