2010-01-24 8 views
25

Jestem nowy dla Ruby pochodzącej z Javy. Próbuję utworzyć żądanie pobierania http i otrzymuję kod odpowiedzi http 400. Usługa, którą wywołuję przez HTTP jest bardzo szczególna i jestem prawie pewien, że moja prośba nie jest dokładnie poprawna. Byłoby pomocne, aby "zajrzeć do wnętrza" obiektu req po wykonaniu żądania head (poniżej), aby dokładnie sprawdzić, czy wysyłające request_headers są tym, co myślę, że wysyłam. Czy istnieje sposób wydrukowania obiektu Req?Jak mogę wydrukować informacje o obiekcie NET: HTTPRequest do celów debugowania?

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}" 

Próbowałem to: puts "Request Debug: #{req.inspect}" ale tylko drukuje to: #<Net::HTTP www.blah.com:443 open=false>

Odpowiedz

49

Zastosowanie set_debug_output.

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

to i wiele więcej w http://github.com/augustl/net-http-cheat-sheet :)

+0

niesamowite, dzięki. – Upgradingdave

+0

Kiedy używam 'set_debug_output' z żądaniami POST, nie rejestruję treści żądania. Wszystko inne jest w porządku (nagłówki zapytań, treść odpowiedzi, nagłówki). Wszelkich pomysłów, jak sprawić, by był on rejestrowany w treści żądania? – tikh

Powiązane problemy