问题 如何使用Fiddler2或类似工具从Java Web应用程序捕获HTTP(S)流量?


我想捕获我的Web应用程序通过HTTPS从CAS服务器发送和接收的数据。我尝试使用Fiddler2,但无法从Java Web应用程序捕获流量。我似乎需要将其配置为使用Fiddler2作为代理。我该怎么做?

一些额外的信息。我已经用keytool导入了Fiddler的证书。在Tomcat 7上运行Web应用程序。使用IntelliJ Idea。


10353
2018-05-29 09:46


起源



答案:


使用以下参数运行JVM:

-Dhttps.proxyHost=yourhostwithfiddler -Dhttps.proxyPort=8888

或者,您可以通过GUI设置Java默认代理 - 请参阅 http://www.java.com/en/download/help/proxy_setup.xml


9
2018-05-29 09:51



感谢GUI代理设置提示,但我仍然无法从我的Web应用程序中捕获任何数据。 “yourhostwithfiddler”的价值应该是多少?设置为localhost。 - Infeligo
@Infeligo:无论运行Fiddler实例的主机是什么。如果它是运行Java应用程序的同一台计算机,那么 localhost 应该管用。 - Piskvor


答案:


使用以下参数运行JVM:

-Dhttps.proxyHost=yourhostwithfiddler -Dhttps.proxyPort=8888

或者,您可以通过GUI设置Java默认代理 - 请参阅 http://www.java.com/en/download/help/proxy_setup.xml


9
2018-05-29 09:51



感谢GUI代理设置提示,但我仍然无法从我的Web应用程序中捕获任何数据。 “yourhostwithfiddler”的价值应该是多少?设置为localhost。 - Infeligo
@Infeligo:无论运行Fiddler实例的主机是什么。如果它是运行Java应用程序的同一台计算机,那么 localhost 应该管用。 - Piskvor


除了Piskvor的答案,请确保配置Fiddler以捕获HTTPS流量:工具 - > Fiddler选项 - > HTTPS - >捕获HTTPS CONNECT


4
2018-05-29 11:51



啊,好点。你可能也想 解码 他们(通过检查下一个复选框),但这将更复杂(因为Fiddler基本上是一个MITM代理) - Piskvor
以防万一有人想要解密https连接。 ofcode.blogspot.com/2012/07/... - Jazzepi


您也可以直接使用设置屏幕: “文件/设置...”,然后选择“IDE设置/ HTTP代理”。 然后勾选“使用代理”,“主机名”:localhost,“端口号”:8888


2
2018-02-04 08:44



你在哪个应用程序配置? - tatmanblue