How to enable wire logging for a java HttpURLConnection traffic?

后端 未结 8 945
离开以前
离开以前 2020-11-27 04:56

I\'ve used Jakarta commons HttpClient in another project and I would like the same wire logging output but using the \"standard\" HttpUrlConnection.

I\'ve used Fiddl

8条回答
  •  旧巷少年郎
    2020-11-27 05:40

    According to Sun's HttpURLConnection source there is some logging support via JUL.

    Setup (adjust path as required):

    -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
    

    This will log to the console, adjust as required to e.g. log to a file.

    Example output:

    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}
    

    Note that this prints only headers without body.

    See http://www.rgagnon.com/javadetails/java-debug-HttpURLConnection-problem.html for details.

    There is also system property -Djavax.net.debug=all. But it's mainly useful for SSL debugging.

提交回复
热议问题