Fiddler抓取Java应用HTTP请求报文
1.监听Tomcat的http请求报文
在catalina.bat添加一行(proxyPort的值为fiddler端口号)
set CATALINA_OPTS=-Dhttp.proxyHost=127.0.0.1 -Dhttp.proxyPort=8888
2.Java程序中监听
HttpURLConnection
System.setProperty("http.proxySet", "true");
System.setProperty("http.proxyHost", "127.0.0.1");
System.setProperty("http.proxyPort", "8888");
使用第三方 HTTP 库,则需要设置连接代理。Apache Commons HttpClient 示例:
HttpClient httpClient = new HttpClient();
httpClient.getHostConfiguration().setProxy("localhost", 8888);
如果您使用的是 Apache HttpClient 4.5.5 或更高版本,则需要这样做:
HttpHost proxy = new HttpHost("localhost", 8888, "http");
DefaultProxyRoutePlanner routePlanner = new DefaultProxyRoutePlanner(proxy);
CloseableHttpClient httpclient = HttpClients.custom()
.setRoutePlanner(routePlanner)
.build();
3.eclipse 中设置
在Eclipse 中全局设置:Windows > Preferences > Java > Installed JREs ,选中Installed JREs > Edit > 设置Default VM arguments:
-Dhttp.proxySet="true" -Dhttp.proxyHost="127.0.0.1" -Dhttp.proxyPort="8888"
在Eclipse 中单个模块设置,项目右键项目选择 Run Configurations > Arguments > 设置 VM arguments > 设置完成后点击Apply > 点击Run即可
-Dhttp.proxySet="true" -Dhttp.proxyHost="127.0.0.1" -Dhttp.proxyPort="8888"
4.fiddler 捕获 https
https://stackoverflow.com/questions/8549749/how-to-capture-https-with-fiddler-in-java