Fiddler的Java抓包
代码处理
System.setProperty("http.proxySet", "true"); System.setProperty("http.proxyHost", "10.1.108.32"); System.setProperty("http.proxyPort", "8888"); System.setProperty("https.proxyHost", "10.1.108.32"); System.setProperty("https.proxyPort", "8888");
JVM参数配置(两者配置一个即可)
-DproxySet=true -DproxyHost=127.0.0.1 -DproxyPort=8888
如果是Https访问,还添加上
-Djavax.net.ssl.trustStore=FiddlerKeystore -Djavax.net.ssl.trustStorePassword=aaaaaa
但是所有这一切的前提是你的Java实现里面是通过读取这些值来是指proxy,比如HttpClient里面就没有做代理设置,这样只能手工添加上:
client.getHostConfiguration().setProxy("localhost", 8888);
包括使用第三方的Http类也是如此;如果第三方不是采用Java原生那种写法就会有问题。
Fiddler的原理就是将Web请求转到Fiddler指定的端口(默认8888),fiddler处理完成后,在转交到这是的设备。在这个过程中,fiddler就能够获取发送到端口的数据。为什么火狐以及chrome不好用?因为没有配置代理,代理已配置应该都好用。