Fiddler不能监听Java HttpURLConnection请求的解决方法

郁闷的事情来了,,,通常在默认情况下,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

stackoverflow上的牛人们也给出了在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");

当然了,。当然最好还是希望Fiddler自身能过增加监听Java HttpURLConnection请求的能力。

你可能感兴趣的:(Fiddler不能监听Java HttpURLConnection请求的解决方法)