简介

Charles是Mac下常用的对网络流量进行分析的工具,类似于Windows下的Fiddler。在开发iOS程序的时候,往往需要调试客户端和服务器的API接口,这个时候就可以用Charles,Charles能够拦截SSL请求、模拟慢速网络、支持修改网络请求包并多次发送、能够篡改Request和Response等强大的功能。下面介绍安装和使用方法。

下载安装

可以从这里下载Charles,有30天的试用期。

安装后打开Charles,试用版本会延迟10秒后加载。如下图:

第一次运行时会弹出如下提示,点击Grant Privileges即可。

然后打开菜单ProxyProxy 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还有很多强大的功能等待大家挖掘,欢迎大家使用下体验下这些功能。


#3 Mac上需要安装的工具下的更多文章