Idea下用Fiddler抓包https

最近刚开始学JAVA,开发一个项目需要用到HttpClient请求某个网址,但是请求的结果始终不对,后来打算通过抓包工具进行对比,看具体是什么原因,由于目标网址是HTTPS,折腾了一番没抓包也没能抓到,然后在度娘上找了很多方法,终于成功抓包了。写本文主要用于记录,怕以后忘记了,所以文章中很多内容和图片直接copy拼凑。正文开始啦。

Fiddler 开启代理在“Tools–Fiddler Options–Connections” 中,这里就不详细叙述了。

一、设置https,导出证书。
打开fiddler,“Tools–Fiddler Options–HTTPS”,然后把下图中同样的地方勾上(注意一致),点击Actions,点击第二项:Export Root Certificate to Desktop,这时候桌面上会出现证书FiddlerRoot.cer文件,点击OK设置成功,关闭fiddler,导出成功的话,在桌面就有你的证书了。
Idea下用Fiddler抓包https_第1张图片
二、进入到jdk下的 jdk\jre\lib\security目录,将fiddler的证书拷贝到这里,然后在cmd中进入到此目录下,执行下面的命令

keytool -keystore cacerts -importcert -alias fiddlerRoot -file FiddlerRoot.cer

此时需要输入秘钥库的密码,默认是 changeit,后面要你确认,输入y就好了。

三、Idea 中设置代理IP和端口,如图:
Idea下用Fiddler抓包https_第2张图片
Idea下用Fiddler抓包https_第3张图片
这样JAVA代码中HTTP请求就可以通过Fiddler抓包了。

JAVA中设置代理,还有几种其他方式,通过代码,这几种方法我在都尝试过。
代码1:

HttpHost proxy = new HttpHost("127.0.0.1", 8888); 
HttpGet httpGet = new HttpGet(url);
RequestConfig config = RequestConfig.custom().setProxy(proxy).build();
httpGet.setConfig(config);

代码2:

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

你可能感兴趣的:(java天地)