Fiddler 未从 Java 应用程序捕获 HTTP 请求

2022-09-01 17:45:18

我目前正在编写一个Java应用程序,该应用程序使用HTTP POST将csv文件和其他一些参数上传到服务器。服务器不断向我的应用程序返回500个错误,我想在Fiddler中查看HTTP请求,以便我可以看到POST请求。
当我运行Fiddler时,它不会从Java应用程序捕获任何HTTP流量。我已经写了一个有效的GET请求,所以我知道我可以与服务器通信,但是没有通过Fiddler显示流量。


答案 1

您只需将 Fiddler 设置为应用程序的 HTTP 代理,即可设置属性

http.proxyHost本地主机,到8888用于HTTP流量和/对于HTTPS流量。对于 HTTPS 流量,您还必须将 Fiddler 根证书(可在选项对话框中导出)作为受信任的证书添加到应用程序中。http.proxyPorthttps.proxyHosthttps.proxyPort

您可以通过在代码开头添加以下行来执行此操作

System.setProperty("http.proxyHost", "localhost");
System.setProperty("http.proxyPort", "8888");

或者在启动 Java-VM 时通过命令行设置它们:

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

答案 2

使用Jetty HTTP客户端,以前的解决方案不起作用。但是,以下方法有效:

HttpClient httpClient = new HttpClient();
httpClient.setProxy(new Address("127.0.0.1", 8888));
httpClient.start();

推荐