【问题标题】:Using fiddler with Java and Eclipse在 Java 和 Eclipse 中使用提琴手
【发布时间】:2011-09-15 15:48:46
【问题描述】:

我正在尝试将提琴手连接到 Eclipse 中的 Java 单元测试,以便在调用我们的 Web 服务时看到肥皂请求...它在我们的 .NET 工具中自动运行,但是否需要一些设置申请Java?谢谢

【问题讨论】:

  • 您需要将 Fiddler 配置为要使用的 HTTP 代理。如何?好吧,我不知道,因为您还没有指定您正在使用什么客户端,以及您的测试如何调用客户端。
  • 我们连接到本地托管的 Web 服务
  • err...抱歉听起来很愚蠢,但为什么知道您正在使用本地托管的 Web 服务在这里很重要?我假设客户端必须配置为使用代理,无论服务是否在本地部署。 Fiddler can intercept traffic to localhost/127.0.0.1 unless the client does something smart.

标签: java eclipse fiddler


【解决方案1】:

这个我没试过,但是...

Fiddler 将自己建立为代理服务器,监听 localhost:8888

您可以通过http.proxyHosthttp.proxyPort 将Java 配置为使用代理服务器(请参阅http://download.oracle.com/javase/6/docs/technotes/guides/net/proxies.html)。

因此,如果您进入 Eclipse 并将“VM”参数设置为以下内容,它应该通过 Fiddler 路由所有流量(当然,它必须已经在运行):

-Dhttp.proxyHost=localhost
-Dhttp.proxyPort=8888

这假定您的应用程序正在使用URLConnection。如果它使用 Apache HttpClient 或其他库,您可能需要查看该库的文档。

【讨论】:

  • 感谢您提及 Apache HttpClient。
  • JVM的代理配置是正确的做法,另外HTTPS连接需要安装fiddler的证书。
  • 万一它不起作用,我必须以这种方式使用变量,否则它不起作用! -DproxyHost=localhost -DproxyPort=8888
【解决方案2】:

我正在使用 Apache HttpClient(4.5.5)、SWT 4、Fiddler 4,而 VM 参数方法对我不起作用。所以我在代码中设置了代理设置,它就可以工作了。

HttpHost proxy = new HttpHost("localhost", 8888, "http");
DefaultProxyRoutePlanner routePlanner = new DefaultProxyRoutePlanner(proxy);
CloseableHttpClient httpclient = HttpClients.custom()
                .setRoutePlanner(routePlanner)
                .build();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-26
    • 1970-01-01
    • 1970-01-01
    • 2022-01-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多