Sun の HttpURLConnection ソースによると、JULを介したロギングのサポートがいくつかあります。
セットアップ (必要に応じてパスを調整):
-Djava.util.logging.config.file=/full/path/to/logging.properties
logging.properties:
handlers= java.util.logging.ConsoleHandler
java.util.logging.ConsoleHandler.level = FINEST
sun.net.www.protocol.http.HttpURLConnection.level=ALL
これにより、コンソールにログが記録されます。たとえば、ファイルにログを記録するように必要に応じて調整します。
出力例:
2010-08-07 00:00:31 sun.net.www.protocol.http.HttpURLConnection writeRequests
FIN: sun.net.www.MessageHeader@16caf435 pairs: {GET /howto.html HTTP/1.1: null}{User-Agent: Java/1.6.0_20}{Host: www.rgagnon.com}{Accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2}{Connection: keep-alive}
2010-08-07 00:00:31 sun.net.www.protocol.http.HttpURLConnection getInputStream
FIN: sun.net.www.MessageHeader@5ac0728 pairs: {null: HTTP/1.1 200 OK}{Date: Sat, 07 Aug 2010 04:00:33 GMT}{Server: Apache}{Accept-Ranges: bytes}{Content-Length: 17912}{Keep-Alive: timeout=5, max=64}{Connection: Keep-Alive}{Content-Type: text/html}
これは、本文なしでヘッダーのみを出力することに注意してください。
詳細については、 http://www.rgagnon.com/javadetails/java-debug-HttpURLConnection-problem.htmlを参照してください。
システムプロパティもあります-Djavax.net.debug=all
。ただし、これは主に SSL のデバッグに役立ちます。