我是来自Java的Ruby新手.我试图发出一个http get请求,得到的http响应代码是400.我通过http调用的服务非常特殊,我很确定我的请求并不完全正确.在我执行head请求(如下)后,仔细判断req对象的内部,以确认正在发送的请求_头是我认为正在发送的,这会很有帮助.有没有打印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>

推荐答案

使用set_debug_output.

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

这一点在http://github.com/augustl/net-http-cheat-sheet种情况下更为明显:)

Ruby相关问答推荐

有没有办法保存 ruby​​ 代码的执行,以便稍后使用逐步重播对其进行调试?

Ruby - 使用索引值识别和更新数组中的重复项

Ruby:这两种混入模块方法是否等效?

Ruby:如何将两个返回值连接到一行中的两个字符串

环绕分隔线,保留第一列,最小最终长度

将数组转换 for each 元素的嵌套哈希

ruby:rubocop 抱怨将 if else 转换为 case 语句

.nil?、.blank? 之间的区别?和.empty?

有人可以解释 Ruby 在块中使用管道字符吗?

Ruby 中的内联注释

如何从 Ruby 中的线程返回值?

Ruby 局部变量未定义

截断、事务和删除数据库策略的区别

在 Ruby 中,获取第一个块返回 true 的可枚举元素的最快方法是什么?

Ruby 中的发送方法

在单个 node 上使用 XPath 返回所有 node 中的元素

Broken pipe (Errno::EPIPE)

如何在 Ruby 中使用gets和gets.chomp

. vs ::(点与双冒号)用于调用方法

哪个键/值存储最有前途/最稳定?