对于经常在 Windows 下进行 Web 开发的人来说,Fiddler 是神器。但由于它是 .Net Framework 下开发的,注定了用于 Linux 或者 Unix 之类系统上只能通过反向代理,如果不在同一个局域网内,非常麻烦。
还好在 Mac OS X 下我们还有 Charles。
和 Fiddler 相比较,二者的功能不相伯仲。优势在于 Charles 跨平台能力强,Charles 支持 Windows/Mac OS/Linux,Fiddler 只能安装在 Windows 下;劣势在于 Charles 是商业软件,最便宜也得 50 美金。
当然,网上已经有很多破解版,感兴趣的网友请自己搜索。
一些使用技巧如下:
记录设置
主菜单 Proxy->Recording Settings…
Include 填写必须要记录的域名,可以使用通配符 * 和 ?,如: *.beginios.com
Exclude 填写不需要记录的域名,可以使用通配符 * 和 ?
注:如果不设置此项,表示全部记录
禁用缓存
主菜单 Tools->No Caching…
勾选后,每次都从服务器读取
iOS 设备 HTTP 抓包
确保 iOS 设备和 Mac 电脑在同一个局域网内,启动 Charles
打开 Proxy->Proxy Settings…,勾选 Enable transparent HTTP proxying
查看 Mac 电脑的 IP 地址,如:192.168.1.100
打开 iOS 设备的设置,进入当前 Wifi 连接,设置 HTTP 代理切换到“手动”,将服务器填为上一步中获得的 IP,端口填8888
iOS 设备中,打开你要抓包的应用进行网络操作
Charles 弹出确认框,点击 Allow 按钮即可
HTTPS抓包
下载 Charles 证书,解压后导入到 iOS 设备中(将 crt 文件作为邮件附件发给自己,再在 iOS 设备中点击附件即可安装;也可上传至 dropbox 之类的网盘,通过 safari 下载安装)
在Charles的工具栏上点击设置按钮,选择 Proxy Settings…
切换到 SSL 选项卡,选中 Enable SSL Proxying,然后在 Locations 表单填写要抓包的域名和端口,点击Add按钮,在弹出的表单中 Host 填写域名,比如填 api.weibo.com,Port 填 443
替换本地文件
Tools –> Map Local…
网络延迟功能
主菜单 Proxy->Throttle Settings…
可以用于测试慢速网络下程序的兼容性