Ruby で Net::Http::Post リクエストにヘッダーを追加するにはどうすればよいですか?
概要
Rails4.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'
送信前にオブジェクトにヘッダーを追加したいことに注意してください。
解決策
インスタンスを使用してヘッダー付きの投稿を作成できます
headers = {"Referer" => url}
http = Net::HTTP.new(uri.host)
response = http.post(uri.path, params.to_query, headers)