私はRails 3.2.1を使ってHTTP Postを作成しています。リクエストのヘッダをレールに追加
ヘッダーにX-FORWARDED
FORを追加する必要があります。 Railsでどうすればいいですか?
コード:
post_data = {
"username" => tabuser
}
response = Net::HTTP.post_form(URI.parse("http://<my php file>"), post_data)
おかげ
私はRails 3.2.1を使ってHTTP Postを作成しています。リクエストのヘッダをレールに追加
ヘッダーにX-FORWARDED
FORを追加する必要があります。 Railsでどうすればいいですか?
コード:
post_data = {
"username" => tabuser
}
response = Net::HTTP.post_form(URI.parse("http://<my php file>"), post_data)
おかげ
これらのネット:: HTTPの例が役に立つかもしれませんか?
https://github.com/augustl/net-http-cheat-sheet/blob/master/headers.rb
非常に役に立ちます。ありがとうございました。 – BlackHatSamurai
リンクのみの回答はお勧めしません。答えの本文にヘッダーを追加する方法については、実際のコードが必要な場合があります。 –
@AndrewGrimm - 私の答えは5年以上前からです。完璧ではありませんが、それは何ですか。 – house9
しかし私は、http://www.dzone.com/snippets/send-custom-headers-rub
から盗まれたこの読みやすく
require "net/http"
require "uri"
url = URI.parse("http://www.whatismyip.com/automation/n09230945.asp")
req = Net::HTTP::Get.new(url.path)
req.add_field("X-Forwarded-For", "0.0.0.0")
req.add_field("Accept", "*/*")
res = Net::HTTP.new(url.host, url.port).start do |http|
http.request(req)
end
puts res.body
を見つけます!
あなたはあなたが行うことができない、アプリケーションをレールにヘッダ(Accept: application/json
) 'を受け入れる]送信する場合:
req.add_field("Accept", "application/json")
をしかし、実行します。
req['Accept'] = 'application/json'
、この理由Railsは、 "、/"または "/"が含まれている場合にAcceptヘッダを無視し、HTML(add_field
が追加されます)を返します。これは、本当に古いブラウザが間違った「Accept」ヘッダーを送信したためです。
どちらの回答もOKですが、重要なことを1つ追加します。あなたは「例外EOFError(到達したファイルの終わり)」を取得します。このUSE_SSLがなけれ
url = URI.parse('https://someurl.com')
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
req = Net::HTTP::Get.new(url.request_uri)
req["header_name"] = header
response = http.request(req)
:HTTPSを使用している場合は、SSLを使用してその行を追加する必要があります。
これらのnet :: httpの例が参考になるでしょうか? https://github.com/augustl/net-http-cheat-sheet/blob/master/headers.rb – house9
ありがとう!あなたが答えとしてそれを入れたいなら、私はそれを受け入れるでしょう –
答えとして答えを加えました - 乾杯! – house9