加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

在发出请求之前从Ruby Net :: HTTP请求获取标头

发布时间:2020-12-17 03:05:34 所属栏目:百科 来源:网络整理
导读:在 Ruby中,如何在实际发出请求之前获取将由net / http或open-uri请求发送的HTTP请求标头. 在某些情况下,在URI中创建签名字符串时会使用标头.当然有一些方法可以获取将要发送的请求标头.例如,这些应该包括“Host:”标题. 解决方法 见 http://ruby-doc.org/st
在 Ruby中,如何在实际发出请求之前获取将由net / http或open-uri请求发送的HTTP请求标头.

在某些情况下,在URI中创建签名字符串时会使用标头.当然有一些方法可以获取将要发送的请求标头.例如,这些应该包括“Host:”标题.

解决方法

见 http://ruby-doc.org/stdlib-2.0/libdoc/net/http/rdoc/Net/HTTP.html#label-Setting+Headers

在ruby 2.0.0中运行良好 – 但你在1.9.3中是正确的,不同的行为

Ruby 2.0.0

require 'net/http'
uri = URI('http://github.com/ruby')

http_request = Net::HTTP::Get.new(uri)
http_request.each_header { |header| puts header }

# => accept-encoding
# => accept
# => user-agent
# => host    

http_response = Net::HTTP.start(uri.hostname,uri.port) do |http|
  http.request(http_request)
end

Ruby 1.9.3

require 'uri'
require 'net/http'
uri = URI.parse('http://github.com/ruby')

http_request = Net::HTTP::Get.new(uri.path)
http_request.each_header { |header| puts header }

# => accept
# => user-agent

http_response = Net::HTTP.start(uri.hostname,uri.port) do |http|
  http.request(http_request)
end

http_request.each_header { |header| puts header }

# => accept
# => user-agent
# => host

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读