How can I print information about a NET:HTTPRequest for debug purposes? How can I print information about a NET:HTTPRequest for debug purposes? ruby ruby

How can I print information about a NET:HTTPRequest for debug purposes?


Use set_debug_output.

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

That and more in http://github.com/augustl/net-http-cheat-sheet :)


If you want to see & debug exactly what your app is sending, not just see its log output, I've just released an open-source tool for exactly this: http://httptoolkit.tech/view/ruby/

It supports almost all Ruby HTTP libraries so it'll work perfectly for this case, but also many other tools & languages too (Python, Node, Chrome, Firefox, etc).

As noted in the other answer you can configure Net::HTTP to print its logs to work out what it's doing, but that only shows you what it's trying to do, it won't help you if you use any other HTTP libraries or tools (or use modules that do), and it requires you to change your actual application code (and remember to change it back).

With HTTP Toolkit you can just click a button to open a terminal, run your Ruby code from there as normal, and every HTTP request sent gets collected automatically.