Charles 是 Mac 下常用的抓包工具,它通过将自己设置成系统的代理服务器,从而完成了抓包的工作。
同类的工具还有 fiddler 和 Wireshark,其中 fiddler 是微软公司使用 .NET 开发的工具,适用于 Windows 操作系统,虽然通过 mono 框架使其可以在 Mac 上安装,但类似于网页通过 Cordova 生成混合应用,混合应用的性能和原生应用相差很大,fiddler 的 Mac 版本存在更新慢,卡顿等问题。Wireshark 可以在 Windows 和 Mac 上运行,不足的一点是不能对特定的请求进行修改,fiddler 的 fiddler script,Charles 的 rewrite 可以实现这个功能。
一、将 Charles 配置为代理服务器
1、在 Charles 的 Settings -> Proxy Settings -> Mac OS X 下,进行如下配置
2、在 系统偏好设置 -> 网络 -> 高级 -> 代理 下,进行如下配置
此时 Charles 被配置为系统的代理服务器。
ps:在调试网页时,Chrome 默认使用系统代理服务器,如果需要在浏览网页时使用其他的代理服务器,可以在火狐浏览器的 首选项 -> 高级 -> 网络 -> 连接设置 上手动配置代理或选择 pac 文件。
二、对特定请求进行修改
在 Charles 的 Tools -> Rewrite 下,可配置修改特定请求的规则,如下图:
Name:规则名称
Locations:可添加多个远程服务器的信息,包括协议,域名,端口号等信息。
Rules:设置修改的规则,可使用正则表达式进行修改,如下图:
三、参考链接
Charles 功能介绍 By 唐巧