Ответ 1
Используйте 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, пришедшем с Java. Я пытаюсь сделать запрос http get, и я получаю код ответа HTTP 400. Служба, которую я вызываю через http, очень специфична, и я уверен, что мой запрос не совсем корректен. Было бы полезно "заглянуть внутрь" объекта 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}"
Я пробовал это: 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:)
Если вы хотите увидеть и отладить именно то, что отправляет ваше приложение, а не просто посмотреть его вывод в журнал, я просто выпустил инструмент с открытым исходным кодом именно для этого: http://httptoolkit.tech/view/ruby/
Он поддерживает почти все библиотеки Ruby HTTP, поэтому он отлично подойдет для этого случая, а также многие другие инструменты и языки (Python, Node, Chrome, Firefox и т.д.).
Как отмечалось в другом ответе, вы можете настроить Net :: HTTP для печати своих журналов, чтобы выяснить, что он делает, но это только покажет вам, что он пытается сделать, это не поможет вам, если вы используете какие-либо другие HTTP-библиотеки или инструменты (или используйте модули, которые делают), и это требует, чтобы вы изменили свой фактический код приложения (и не забудьте изменить его обратно).
С помощью HTTP Toolkit вы можете просто нажать кнопку, чтобы открыть терминал, запустить код Ruby оттуда как обычно, и каждый отправленный HTTP-запрос будет собираться автоматически.