![](https://img.haomeiwen.com/i5670606/15a919ccde47786e.png)
Charles是一个HTTP代理/ HTTP监视器/反向代理,使开发人员能够查看其机器和Internet之间的所有HTTP和SSL / HTTPS流量。 这包括请求,响应和HTTP标头(包含cookie和缓存信息)。
主要功能:
- 支持SSL代理。可以截取分析SSL的请求。
- 支持流量控制。可以模拟慢速网络以及等待时间(latency)较长的请求。
- 支持AJAX调试。可以自动将json或xml数据格式化,方便查看。
- 支持AMF调试。可以将Flash Remoting 或 Flex Remoting信息格式化,方便查看。
- 支持重发网络请求,方便后端调试。
- 支持修改网络请求参数。
- 支持网络请求的截获并动态修改。
- 检查HTML,CSS和RSS内容是否符合W3C标准。
Charles是一款收费的软件, 可以免费试用30天 (常用的话建议大家找下破解版)官网下载地址
下载安装后, 启动Charles。
第一次启动,Charles会请求你给它设置系统代理的权限,可以直接确认,输入登录密码授权:
![](https://img.haomeiwen.com/i5670606/ca264d36a197cfb3.png)
也可以忽略该请求, 在需要使用的时候将其设置为系统代理:
![](https://img.haomeiwen.com/i5670606/25ceb3fa7a1270db.png)
抓取iPhone上应用的网络封包
-
Charles的设置
- 要抓取iPhone上应用的网络请求, 我们首先需要将Charles的代理功能打开(菜单栏:Proxy->Proxy Settings...):
![](https://img.haomeiwen.com/i5670606/c98cc66944963562.png)
- 将代理端口设置为8888,并勾选“Enable transparent HTTP proxying”:
![](https://img.haomeiwen.com/i5670606/e46ed5a58200b841.png)
-
iPhone的设置
- 获取Charles运行所在电脑的IP地址:
![](https://img.haomeiwen.com/i5670606/61ba7e1e7ca83e33.png)
![](https://img.haomeiwen.com/i5670606/6e95b81eff1a3c33.png)
- 在iPhone的“设置”->“无线局域网”中点击当前连接的wifi,在详情界面找到[HTTP代理]一项, 切换为手动, 设置上Charles运行所在电脑的IP和端口号8888:
![](https://img.haomeiwen.com/i5670606/fa1f637f92f3a7da.png)
- 打开你需要抓包的应用,可以看到Charles弹窗iPhone请求连接的确认菜单, 点击“Allow”允许连接即可。
抓取Https请求
- 安装证书
![](https://img.haomeiwen.com/i5670606/976ec8187f839642.png)
输入系统的登录密码, 即可在钥匙串中看到我们安装的证书, 双击证书, 信任证书:
![](https://img.haomeiwen.com/i5670606/8da838c17e99d8d0.png)
- iPhone安装证书
![](https://img.haomeiwen.com/i5670606/3a844e35c6203c2c.png)
选中后会弹出一个提示框:
![](https://img.haomeiwen.com/i5670606/dc9c1ebb30968a6a.png)
在iPhone自带的safari浏览器中输入网址:chls.pro/ssl ,允许其下载配置描述文件, 在“设置”->“通用”->“描述文件与设备管理”中信任Charles Proxy 文件:
![](https://img.haomeiwen.com/i5670606/dc5a7a6b7c9619f1.png)
![](https://img.haomeiwen.com/i5670606/4f61658531892fce.png)
在ios10.3以后,安装新的自定义证书默认是不受信任的,需要在“设置”->“通用”->“关于本机”->“证书信任设置”中手动打开开关去信任:
![](https://img.haomeiwen.com/i5670606/17d676ca2ea8f9b0.png)
到这里, 我们就可以愉快的抓取应用的请求了,但此时你发现 ,抓取到的请求内容都发生了乱码:
![](https://img.haomeiwen.com/i5670606/90d70f72d5150f95.png)
不用担心, 去设置SSL代理就ok了:
![](https://img.haomeiwen.com/i5670606/96d5a62bdf07004d.png)
![](https://img.haomeiwen.com/i5670606/27556d40211d34a5.png)
网友评论