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

后端 未结 2 764
深忆病人
深忆病人 2021-02-05 01:03

I\'m new to Ruby coming from Java. I\'m trying to make a http get request and I\'m getting an http response code of 400. The service I\'m calling over http is very particular an

相关标签:
2条回答
  • 2021-02-05 01:42

    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 :)

    0 讨论(0)
  • 2021-02-05 01:47

    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.

    0 讨论(0)
提交回复
热议问题