如何找出请求对象中的所有请求标头?
问题描述:
我正在使用Rails 4.2.7。我有一个请求我设置像这样:如何找出请求对象中的所有请求标头?
2.3.0 :001 > url = 'http://www.mydomeina.com/results/browse.cfm?ID=4187141102&Gen=B&Begin=1&End=31&Max=31'
=> "http://www.mydomeina.com/results/browse.cfm?ID=4187141102&Gen=B&Begin=1&End=31&Max=31"
2.3.0 :002 > uri = URI(url)
=> #<URI::HTTP http://www.mydomeina.com/results/browse.cfm?ID=4187141102&Gen=B&Begin=1&End=31&Max=31>
2.3.0 :003 > req = Net::HTTP::Get.new uri
=> #<Net::HTTP::Get GET>
2.3.0 :004 > req["Referer"] = 'http://www.mydomeina.com/results/browse.cfm?ID=4187141102&Gen=B&Begin=1&End=31&Max=31'
=> "http://www.mydomeina.com/results/browse.cfm?ID=4187141102&Gen=B&Begin=1&End=31&Max=31"
我设置req["Referer"]
作为设置一个头的一个例子。我的请求对象中可能还有其他标题。我怎么知道他们都是什么?这失败了:
2.3.0 :009 > req.keys
NoMethodError: undefined method `keys' for #<Net::HTTP::Get GET>
Did you mean? key?
和req.headers
一样。我如何迭代我的请求对象来找出所有标题是什么?以不同的方式构建请求对象并不是我现在正在做的事情。
答
尝试
req.each_key{|k| puts k}
或
req.each{|k,v| puts "#{k} => #{v}"}
看到从内控制台对象的方法,你总是可以做
req.methods - Ojbect.methods