6

我有一些新的(使用 Apache commons http 库)和旧的(严格使用 java 1.4 API)的 java 代码,并且我正在尝试使用较新的 apache commons 库重写旧代码。但是,它不起作用,我正在努力找出原因。请求正在发送,但我的新代码在我无权访问的接收服务器上超时。由于旧代码有效,我一定搞砸了 http 请求。使用某种 HTTP 流量嗅探器来准确检查正在发送的内容会非常有用,这样我就可以看到存在哪些差异。

我已经从网上下载了一些 http 嗅探器(这个那个),但都没有捕获我的 java 代码发送的任何 http 数据(但是当我从浏览器发送随机请求时它们确实有效)。关于如何获得这些数据的任何想法?

4

4 回答 4

8

使用线鲨

它很棒、免费、开源、跨平台,并且可以突出显示不同的网络层,而且它不是从一些看起来像 SEO 垃圾邮件的可疑网站运行的。

Snort是另一个不错的选择,但它更适合入侵检测和自动响应。尽管如此,它还是有一个很棒的嗅探器。

于 2011-01-31T16:12:03.313 回答
3

通常,我发现数据包嗅探对于 HTTP 故障排除的级别太低。尝试反向代理;我个人喜欢Charles,因为它在 Windows、Mac OS X 和 Linux 中的工作方式相同;Fiddler在 Windows 上很流行。

于 2011-01-31T16:21:20.697 回答
0

如果您尝试嗅探您的环回(127.0.0.1) - 这有点复杂,您应该为此安装特殊的驱动程序。
我建议您将请求发送到“假”服务器,而不是嗅探它。
您可以使用“WireShark”或“burpSuite”进行嗅探(如果您可以配置通过代理服务器的程序)。
冰川

于 2011-01-31T16:13:29.747 回答
0

您可以指定 SOCKS 代理。通常 Java 使用 SocksSocketImpl - 即它自动支持 SOCKS 代理。

任何其他嗅探器也可以

于 2011-01-31T16:21:37.073 回答