如何确定请求对象中的所有请求标头是什么?

时间:2016-09-20 20:38:23

标签: ruby get request http-headers net-http

我正在使用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一样。如何迭代我的请求对象以找出所有标头是什么?不能以与我现在正在做的不同的方式构造请求对象。

1 个答案:

答案 0 :(得分:0)

尝试

 req.each_key{|k| puts k}

 req.each{|k,v| puts "#{k} => #{v}"}

从控制台内部查看对象上的方法,您可以随时执行

req.methods - Ojbect.methods