我是从Java来的Ruby新手。我试图发出一个http get请求,得到的http响应代码为400。我通过http调用的服务非常特殊,我很确定我的请求并不完全正确。在我执行head请求(如下)之后,“查看”req
对象的内部会很有帮助,可以仔细检查正在发送的request_header是否是我认为我正在发送的。有没有办法打印出req对象?
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}"
我试过这个:puts "Request Debug: #{req.inspect}"
,但它只打印以下内容:#<Net::HTTP www.blah.com:443 open=false>
2条答案
按热度按时间dauxcl2d1#
使用
set_debug_output
。http://github.com/augustl/net-http-cheat-sheet中的这些和更多:)
polhcujo2#
如果你想看到& debug * 确切 * 你的应用正在发送什么,而不仅仅是看到它的日志输出,我刚刚发布了一个开源工具:http://httptoolkit.tech/view/ruby/
它支持几乎所有的Ruby HTTP库,因此它可以完美地工作在这种情况下,但也支持许多其他工具和语言(Python,Node,Chrome,Firefox等)。
正如在另一个答案中所指出的,你可以配置Net::HTTP打印它的日志来确定它在做什么,但这只能显示它试图做什么,如果你使用任何其他HTTP库或工具(或使用模块),它不会帮助你,它需要你改变你的实际应用程序代码(并记住将其更改回来)。
使用HTTP Toolkit,您只需单击一个按钮即可打开一个终端,从那里正常运行Ruby代码,并自动收集发送的每个HTTP请求。