gpt4 book ai didi

java - 如何调试通过线路传输的所有内容 (http)

转载 作者:行者123 更新时间:2023-12-02 06:00:34 25 4
gpt4 key购买 nike

我正在尝试调试 Glassfish 4 中的一些 Rest 服务,我想确切地查看通过线路(HTTP 连接)发送的内容。有没有办法让 Glassfish 打印出来?

我的项目使用 Apache HTTP Client我知道是否可以在那里配置它,但我无法让它与我们的日志框架 (java.util.logging) 一起工作。

编辑:或者有没有一种方法可以调试 Jersey 使其打印出此信息?

最佳答案

您没有指定您是否可以控制客户端/前端,或者这是否只是后端。

脑海中立刻浮现出一些想法:

  1. 使用像 WireShark 这样的数据包嗅探器/分析器(正如已经建议的那样)。效果很好,唯一的问题是生成的数据可能比您真正想要查看/分析的数据多得多。

  2. 使用类似 Charles 的代理或 Fiddler .这些可以配置为显示/记录您想要/需要的数据。缺点是它们是代理(即:必须在你的连接中间),如果你把它放在你的服务器前面,这可能会导致配置困难。通常在客户端更容易配置,只需通过它推送客户端流量即可。 Fiddler 是免费的,但仅基于 Windows(可用于 Mac 和 Linux 的 alpha 版本)。 Charles 有试用版,否则是 50 美元(如果没记错的话)。我也不知道 Fiddler 和/或 Charles 是否会以 headless 模式运行。

  3. 设置您自己的 Http 代理服务器并通过那里记录所有内容。不是真正理想的解决方案,但仍然是一个选择。

  4. 向您的应用程序添加过滤器以记录所有传入/传出的 HTTP 数据,但这会变得棘手/困惑,而且传入的 Http 请求主体是单次读取,因此需要缓存它们以供多次读取/访问(请参阅 Http Servlet request lose params from POST body after read it oncehttps://stackoverflow.com/a/17129256/827480 以获得针对此问题的建议解决方案)

关于java - 如何调试通过线路传输的所有内容 (http),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26379889/

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