本文主要介绍charles监听app的http请求和https请求。
本文主要参考:
https://www.jianshu.com/p/fb2bdde5b498
下面上货。
charles是一个HTTP代理服务器,HTTP监视器,反转代理服务器,当浏览器连接Charles的代理访问互联网时,Charles可以监控浏览器发送和接收的所有数据。它允许一个开发者查看所有连接互联网的HTTP通信,这些包括request, response和HTTP headers (包含cookies与caching信息)。
安装charles 可以参考上面的文章:
http正常截获
安装完成后我们进行app应用的http监视。
1、打开charles,查看一下当前本机的ip
2、在手机端需要保证和charles所在的主机是同一个子网内。
3、设置手机的代理地址:设置==>无线网络==>选中当前的无线==>代理设置==>手动==>服务器地址填写为192.168.0.107==>端口为8888==>保存
4、这时候会charles会出现下面的提示
选择allow即可。
5、打开app,查看charles界面。
这样就实现了对http请求的监视。
但是从上面的截图我们会发现,有很多请求是我们看不了了,比如带有一个锁头样式的。这是因为这些请求是https的。
https需要配置证书。
1、charles打开ssl代理:
这时候会发现请求里面会有这样的提示,是因为我们的手机端没有安装证书。
You may need to configure your browser or application to trust the Charles Root Certificate. See SSL Proxying in the Help menu.
3、app安装证书
从charles中导出证书,这里导出的格式是cer的。
保存后需要在手机端安装证书。线发送到手机上,然后安装。
设置==>指纹和安全==>设备与凭证==>从存储盘安装==>找到对应的cer文件,安装证书即可。
这里有一个谷歌浏览器安装证书的步骤
安装证书之后,可以在访问某个页面或者用app进行访问的时候,就能够正常的检测到https的请求了。
如果去掉本地浏览器安装的证书,我们再访问一下: