rew*_*olf 5 ruby open-uri net-http
在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中有不同的行为
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
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)
小智 3
Net::HTTP 类似乎都使用 Net::HTTPHeader 作为 mixin。您应该能够在请求对象上使用to_hash()来一次获取所有标头,或者使用each_header() /each()一次迭代一个标头。
| 归档时间: |
|
| 查看次数: |
5612 次 |
| 最近记录: |