[英]Getting Headers from a Ruby Net::HTTP Request before making the request
在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
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
Net :: HTTP類似乎都使用Net :: HTTPHeader作為mixin。 您應該能夠在請求對象上使用to_hash()一次獲取所有標頭,或者每次都使用each_header()/ each()來迭代一個標頭。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.