2010-01-24 50 views
25

我是来自Java的Ruby的新手。我试图做一个HTTP GET请求,我得到一个400的HTTP响应代码。我通过HTTP调用的服务非常特别,我很确定我的请求不完全正确。在我执行头部请求(下面)后仔细检查req对象,以便仔细检查发送的request_headers是我认为正在发送的内容,这会很有帮助。有没有办法打印出req对象?使用set_debug_output#<Net::HTTP www.blah.com:443 open=false>如何打印有关NET:HTTPRequest的信息以进行调试?

回答

49

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}"但只打印此。

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

+0

真棒,谢谢。 – Upgradingdave 2010-01-24 20:51:13

+0

当我在POST请求中使用'set_debug_output'时,它不记录请求主体。其他一切都很好(请求标题,响应正文,标题)。任何想法如何使它记录请求正文? – tikh 2017-09-12 22:27:08