Techioz Blog

デバッグ目的で NET:HTTP リクエストに関する情報を出力するにはどうすればよいですか?

概要

Java から来た Ruby は初めてです。 http get リクエストを行おうとしているのですが、http レスポンス コード 400 が返されます。http 経由で呼び出しているサービスは非常に特殊であり、私のリクエストは正確には正しくないと確信しています。 head リクエスト (以下) を実行した後、req オブジェクトの「内部を調べて」、送信されている request_headers が送信していると考えられるものであることを再確認すると便利です。 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}"

私はこれを試しました:「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 をご覧ください:)