【发布时间】:2011-07-21 17:25:31
【问题描述】:
我有一个与一些 REST 服务通信的 java 应用程序,我想使用 Fiddler 查看 HTTP 流量。
Fiddler 在 localhost:8888 上充当代理,因此以下 Java VM 选项应该配置 java 以使用此代理:
-Dhttp.proxyHost=localhost -Dhttp.proxyPort=8888
但是,如果我在运行要调试的 java 应用程序时传递这些参数,我在 Fiddler 中看不到流量。
我编写了一个测试 Java 应用程序,它使用 HttpURLConnection 简单地执行 HTTP GET。
如果我在 Eclipse 调试时指定了上述命令行参数,我可以在 fiddler 中查看该应用程序的 HTTP 流量。
http.proxyHost/Port 可能不适用于所有 java HTTP 操作的原因是什么?
【问题讨论】:
-
你运行的java版本是什么?运行 java -version (以防万一)。您是否有可能在您的机器上安装了旧的 JRE?自 java 1.5 起支持这些属性
-
命令行报告的版本是1.6.0_26。在 Eclipse 中调试我的小型测试应用程序时,这些选项确实有效。
-
(1) 检查您在 Eclipse 中使用的是哪个 JRE。它与从命令行运行时使用的相同吗? (2) 您是否尝试从命令行运行小测试(可在 eclipse 中运行)?如果不先试试。如果在测试开始时打印系统属性不起作用。那么您能否发布您正在使用的完整命令行?
-
好建议。我发现我要测试的应用程序正在使用 Apache HTTP 客户端库,这些库显然没有与这些代理配置命令行设置挂钩:cephas.net/blog/2007/11/14/…
-
你还需要一个空的 nonProxyHosts : -Dhttp.nonProxyHosts=