Fiddler监听Java应用本地请求的方法

-问题-

Fiddler无法监听Java应用本地的HTTP请求。

-原因-

默认情况下,Fiddler不能监听Java HttpURLConnection请求。因为,Java的网络通信协议栈可能和浏览器的通信协议栈略有区别,Fiddler监听Http请求的原理是在应用程序和操作系统网络通信层之间搭建了一个代理服务器,而Java的HttpURLConnection应该是绕过了这个代理服务器,因此Fiddler无法监听到Java HttpURLConnection请求。

因此解决Fiddler不能监听Java HttpURLConnection请求的基本思路就是设置代理服务器。

-解决办法-

Fiddler官网给出的解决办法(见http://www.fiddler2.com/fiddler/help/hookup.asp#Q-JavaTraffic)是设置jvm参数,如

jre -DproxySet=true -DproxyHost=127.0.0.1 -DproxyPort=8888 MyApp

或者在Java代码中设置代理服务器的方法可以解决(见http://stackoverflow.com/questions/8549749/how-to-capture-https-with-fiddler-in-java),如

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


你可能感兴趣的:(java,fiddler,HTTP监听)