Android 实现抓取Https数据
1.为啥要会抓包
a.当公司没有接口文档,但需要做接口测试的时候,需要通过代理工具,对接口进行抓取。
b.当开发上传图片时,不知道自己到底上传没上传,这时候就可以通过抓包来收集证据,避免后台甩锅。
2.电脑手机同一局域网,设置手机手动代理。
a.可通过Charles查看电脑IP地址,也可以通过命令行输入ipconfig查看IP地址
b.之后通过设置手机手动代理,端口号设置为8888
设置完后,Charles会弹出一个框框,如下图所示,然后选择Allow。
这样就可以愉快的抓取手机的请求信息了。
c.到目前为止只能抓取Http接口的数据,如果是Https的请求就会出现下图的这种情况。那么我们应该怎么办呢?
3.抓取Https,Charles需要设置什么
a.先打开Charles 的代理功能:在菜单栏上选择“Proxy -> Proxy Settings”,填入代理端口 8888,并且勾上 “Enable transparent HTTP proxying”;
b.再选择“Proxy—SSL Proxy Settings”,勾选“Enable SSL Proxying”,在Location部分选择add,如下图所示,host中填" * ",port中填“ * ”,表示任务域名的数据;
c.在Charles 的顶部菜单,点击“Help -> SSL Proxying -> Install Charles Root Certificate on a Mobile Device or Remote Browser”;
然后会出现一个弹窗,点击弹窗中“确定”;
4.抓取Https,手机需要设置什么
a.打开手机浏览器,输入http://chls.pro/ssl,访问该地址会下载charles证书,将此证书安装到手机上;
b.在设置里面搜索证书,然后点击安装证书,然后找到刚才的证书点击安装。