gpt4 book ai didi

java - 如何为 java HttpURLConnection 流量启用线路日志记录?

转载 作者:IT老高 更新时间:2023-10-28 20:45:03 24 4
gpt4 key购买 nike

我用过Jakarta commons HttpClient在另一个项目中,我想要相同的 wire logging输出但使用“标准”HttpUrlConnection。

我用过Fiddler作为代理,但我想直接从 java 记录流量。

捕获连接输入和输出流的内容是不够的,因为 HTTP header 是由 HttpUrlConnection 类编写和使用的,因此我将无法记录 header 。

最佳答案

根据Sun's HttpURLConnection source通过 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。但主要是useful for SSL debugging .

关于java - 如何为 java HttpURLConnection 流量启用线路日志记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1445919/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com