Я нахожу это более читаемым
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
украдена из http://www.dzone.com/snippets/send-custom-headers-rub
ОДНАКО !!
если вы хотите отправить 'Принять' заголовок (Accept: application/json
) для приложения Rails, вы не можете сделать:
req.add_field("Accept", "application/json")
но сделать:
req['Accept'] = 'application/json'
Причиной этого, что Rails игнорирует заголовок Accept, когда он содержит «, /» или «/», и возвращает HTML (который добавляет add_field
). Это связано с тем, что действительно старые браузеры отправляют неверные заголовки «Принять».
Эти примеры: :: http могут быть полезны? https://github.com/augustl/net-http-cheat-sheet/blob/master/headers.rb – house9
Спасибо! Если вы хотите выразить это как ответ, я приму это –
добавил комментарий в качестве ответа - Привет! – house9