【问题标题】:How do I figure out what all the request headers in my request object are?如何确定我的请求对象中的所有请求标头是什么?
【发布时间】:2017-01-28 22:09:30
【问题描述】:

我使用的是 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 也是如此。如何遍历我的请求对象以找出所有标头是什么?以不同于我现在所做的方式构造请求对象不是一种选择。

【问题讨论】:

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


    【解决方案1】:

    试试

     req.each_key{|k| puts k}
    

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

    要从控制台内部查看对象上的方法,您总是可以这样做

    req.methods - Ojbect.methods
    

    【讨论】:

      猜你喜欢
      • 2016-06-06
      • 2013-10-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-22
      • 1970-01-01
      相关资源
      最近更新 更多