3.2 网络流量分析工具Charles
简介
Charles是Mac下常用的对网络流量进行分析的工具,类似于Windows下的Fiddler。在开发iOS程序的时候,往往需要调试客户端和服务器的API接口,这个时候就可以用Charles,Charles能够拦截SSL请求、模拟慢速网络、支持修改网络请求包并多次发送、能够篡改Request和Response等强大的功能。下面介绍安装和使用方法。
下载安装
可以从这里下载Charles,有30天的试用期。
安装后打开Charles,试用版本会延迟10秒后加载。如下图:
第一次运行时会弹出如下提示,点击Grant Privileges即可。
然后打开菜单Proxy的Proxy Setting,设置端口为:8888。 如下图所示:
支持拦截SSL请求
根据官方的文档:
真实设备上的设置方法
如果要在真实设备上拦截SSL连接,需要安装证书,从http://charlesproxy.com/charles.crt下载即可。
下载证书之后,双击它,会有如下提示:
点击其中的“Always Trust”,然后输入自己的账号密码给它授权。
可以从Keychain中查看授权之后的结果:
模拟器上的设置方法
下载http://www.charlesproxy.com/assets/install-charles-ca-cert-for-iphone-simulator.zip,解压之后双击,就可以在模拟器上拦截SSL请求了,甚至都不用重启模拟器。
设置iOS设备的代理
首先获取运行Charles的Mac的IP地址,可以打开命令行(Terminal)输入ifconfig得到IP地址。
或者spotlight 打开 Network Utility,如下图所示:
然后在iOS设备的WiFi网络中设置代理,如下图:
确保移动设备和Mac在同一个WIFI下面。
通过Charles分析iOS设备的网络请求
按下Record按钮,或者Proxy菜单里面的Start Recording即可对iOS设备的网络请求进行监听。
Charles的功能
- 拦截SSL请求
- 模拟慢速网络
菜单Proxy中的Throttle Setting可以对此进行设置- 支持修改网络请求包并多次发送
- 断点功能
Charles能够断到发送请求前(篡改Request)和请求后(篡改Response)- 捕获记录控制 可以过滤出关注的请求。菜单Proxy中的Record Setting可以对此进行设置
暂时不展开介绍这些功能,这里介绍再多都比不上自己运行几分钟的效果好。
小结
Charles还有很多强大的功能等待大家挖掘,欢迎大家使用下体验下这些功能。