Me parece más legible
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
robados de http://www.dzone.com/snippets/send-custom-headers-rub
Sin embargo !!
si desea enviar 'Aceptar' cabecera (Accept: application/json
) para aplicación Rails, no se puede hacer:
req.add_field("Accept", "application/json")
pero hacer:
req['Accept'] = 'application/json'
La razón de esto que Rails ignora el encabezado Accept cuando contiene ", /" o "/" y devuelve HTML (que se agrega add_field
). Esto se debe a que los navegadores realmente antiguos envían encabezados "Aceptar" incorrectos.
Estos ejemplos net :: http pueden ser útiles? https://github.com/augustl/net-http-cheat-sheet/blob/master/headers.rb – house9
¡Gracias! Si quiere poner eso como respuesta, lo acepto –
comentario agregado como respuesta - ¡Salud! – house9