2010-01-24 8 views
25

Soy nuevo en Ruby procedente de Java. Estoy intentando hacer una solicitud de obtención de http y obtengo un código de respuesta HTTP de 400. El servicio al que llamo por http es muy particular y estoy bastante seguro de que mi solicitud no es exactamente correcta. Sería útil "mirar dentro" del objeto req después de hacer la solicitud principal (a continuación) para verificar que los request_headers que se envían son lo que creo que estoy enviando. ¿Hay alguna forma de imprimir el objeto de solicitud?¿Cómo puedo imprimir información sobre un NET: HTTPRequest para depuración?

req = Net::HTTP.new(url.host, url.port) 
req.use_ssl = true 

res = req.head(pathWithScope, request_headers) 

code = res.code.to_i 
puts "Response code: #{code}" 

yo probamos este: puts "Request Debug: #{req.inspect}" pero sólo se imprime la siguiente: #<Net::HTTP www.blah.com:443 open=false>

Respuesta

49

Uso set_debug_output.

http = Net::HTTP.new(url.host, url.port) 
http.set_debug_output($stdout) # Logger.new("foo.log") works too 

Eso y más en http://github.com/augustl/net-http-cheat-sheet :)

+0

impresionante, gracias. – Upgradingdave

+0

Cuando uso 'set_debug_output' con solicitudes POST, no registra el cuerpo de la solicitud. Todo lo demás está bien (solicitar encabezados, cuerpo de respuesta, encabezados). ¿Alguna idea de cómo hacer que se registre el cuerpo de la solicitud? – tikh

Cuestiones relacionadas