【问题标题】:How do you add headers to a Net::Http::Post request in Ruby?如何在 Ruby 中向 Net::Http::Post 请求添加标头?
【发布时间】:2017-01-22 09:55:48
【问题描述】:

我使用的是 Rails 4.2.7。如何将标头添加到 Net::HTTP::Post 请求?我试过了

    params = {"SubmitButton" => "View"}
    …
      headers = {"Referer" => url}
      req = Net::HTTP::Post.new(uri, params.to_query, headers)

但是,当我运行此代码时,我得到了错误

Error during processing: wrong number of arguments (given 3, expected 1..2)
/Users/davea/.rvm/rubies/ruby-2.3.0/lib/ruby/2.3.0/net/http/request.rb:14:in `initialize'
/Users/davea/Documents/workspace/myproject/app/services/marathon_guide_race_finder_service.rb:97:in `new'
/Users/davea/Documents/workspace/myproject/app/services/marathon_guide_race_finder_service.rb:97:in `block in process_race_link'
/Users/davea/.rvm/gems/ruby-2.3.0/gems/nokogiri-1.6.8/lib/nokogiri/xml/node_set.rb:187:in `block in each'
/Users/davea/.rvm/gems/ruby-2.3.0/gems/nokogiri-1.6.8/lib/nokogiri/xml/node_set.rb:186:in `upto'
/Users/davea/.rvm/gems/ruby-2.3.0/gems/nokogiri-1.6.8/lib/nokogiri/xml/node_set.rb:186:in `each'

请注意,我想在发送对象之前将标题添加到对象中。

【问题讨论】:

    标签: ruby-on-rails ruby post http-headers net-http


    【解决方案1】:

    您可以使用实例制作带有标题的帖子

    headers  = {"Referer" => url}
    http     = Net::HTTP.new(uri.host)
    response = http.post(uri.path, params.to_query, headers)
    

    【讨论】:

    • 谢谢,但我想在发送前将标题添加到对象中。如何将标头添加到 POST 请求对象本身中,还是不可能的?
    • http.post 调用之前不会发出请求,在上面的代码中将正确附加您的标头。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-10
    • 1970-01-01
    • 2017-06-22
    • 1970-01-01
    • 1970-01-01
    • 2017-12-27
    相关资源
    最近更新 更多