2010-01-24 15 views
25

Ruby’den Java’ya yeni geliyorum. Bir http isteği almak ve 400 bir http yanıt kodu alıyorum. Http üzerinden çağıran hizmet çok özel ve oldukça eminim ki isteğim tam olarak doğru değil. Gönderilmekte olduğumu düşündüğüm request_header'larının kontrol edilip edilmediğini iki kez kontrol etmek için baş isteğini (aşağıda) yaptıktan sonra req nesnesinin "içeride" görünmesi yararlı olacaktır. Req nesnesini yazdırmanın bir yolu var mı? Bir NET ile ilgili bilgileri nasıl yazdırabilirim: Hata ayıklama amacıyla HTTPRequest?

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}" 

bu çalıştı: puts "Request Debug: #{req.inspect}" ancak yalnızca bu yazdırır: #<Net::HTTP www.blah.com:443 open=false>

cevap

49

kullanın set_debug_output.

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

Bu ve daha fazla http://github.com/augustl/net-http-cheat-sheet :)

+0

müthiş, teşekkürler. – Upgradingdave

+0

POST istekleri ile set_debug_output 'kullandığımda, istek gövdesini kaydetmez. Her şey yolunda (istek başlıkları, cevap gövdesi, başlıklar) iyidir. Herhangi bir fikir, istek gövdesini nasıl kaydeder? – tikh

İlgili konular