Charles 是一款网络抓包分析工具,是一款收费软件,在不付费的情况下也可以使用,但是每次启动要等待 10 秒。在客户端研发过程中,如果能善用 Charles 可以很大的提高开发效率。
抓取电脑端的网络请求
将电脑作为代理抓取手机端的网络请求
抓取 http 和 https 请求
过滤网络请求
模拟慢速网络
黑名单功能
修改网络请求
映射网络请求内容
断点调试网络请求
mac 4.0.0
win 4.0.1(破解文件)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BI0iOKzE-1571017768050)(media/15695556173148/15695557073317.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1xFBsFlE-1571017768051)(media/15695556173148/15695557373543.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ydLZMyH9-1571017768052)(media/15695556173148/15695557682378.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NAPWxDER-1571017768052)(media/15695556173148/15695557892648.jpg)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Bpdo7AmK-1571017768053)(media/15695556173148/15695558097040.png)]
至此 手机连接Charles就已经配置好了
Structure模式 以请求的目录结构组织(同一个请求会划分到同一个节点下, 细到单个path)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DbEz2rkI-1571017768053)(media/15695556173148/15695558844384.jpg)]
Sequence模式 以请求时间来排序
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jDyJ0rpr-1571017768054)(media/15695556173148/15695559043500.png)]
习惯了Wireshark之类的工具的话 可能比较习惯Sequence模式 但是这里推荐用Structure模式来使用Charles 这也是Charles默认的模式
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ejpumjMD-1571017768054)(media/15695556173148/15695559540990.jpg)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GpwrVXoc-1571017768054)(media/15695556173148/15695559663804.jpg)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qX6F0QpL-1571017768055)(media/15695556173148/15695559796652.jpg)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qIZbejba-1571017768055)(media/15695556173148/15695559951804.jpg)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YuvQSPti-1571017768055)(media/15695556173148/15695560034021.jpg)]
由于HTTPS的安全性保证 默认Charles是无法解析HTTPS包得 如果需要截取分析HTTPS协议相关的内容 那么需要安装 Charles 的 CA 证书。
首先需要在电脑上安装证书 点击 Charles 的顶部菜单 选择 “Help” -> “SSL Proxying” -> “Install Charles Root Certificate” 然后输入系统的帐号密码即可
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fUqFHxDU-1571017768056)(media/15695556173148/15695560417161.png)]
如果需要在 iOS 或 Android 机器上截取 Https 协议的通讯内容 还需要在手机上安装相应的证书 点击 Charles 的顶部菜单 选择 “Help” -> “SSL Proxying” -> “Install Charles Root Certificate on a Mobile Device or Remote Browser” 然后就可以看到 Charles 弹出的提示 按照提示用手机自带的浏览器访问对应地址(iPhone要用safari) 进行证书安装即可
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TcE7URPg-1571017768056)(media/15695556173148/15695560651798.jpg)]
但是当安装完证书以后会发现 还是无法解析HTTPS请求
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oEiOKjvf-1571017768057)(media/15695556173148/15695560820369.jpg)]
这是因为Charles默认是不开启HTTPS解析的 需要手动打开
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TPPl7VkI-1571017768057)(media/15695556173148/15695561036403.png)]
设置完之后 就可以看到HTTPS的请求了
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1eh5OkDz-1571017768057)(media/15695556173148/15695561169556.png)]
如果你觉得这样配置比较麻烦的话 也可以选择 “Proxy” -> “SSL Proxying Setting” 来一次性配置
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-B1mOqnYP-1571017768058)(media/15695556173148/15695561329926.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NPcJ4xZN-1571017768058)(media/15695556173148/15695561401494.png)]
网络模拟
Charles可以模拟各种网络状态 选择“Proxy” -> “ Throttle Setting” 即可设置
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nGksJp5T-1571017768059)(media/15695556173148/15695561571397.png)]
打开"Enable Throttling" 即可打开模拟功能 而在"Throttle preset"中 已预置了很多常见的网络状况 当然你也可以自己配置这些参数
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xOhAWT0Z-1571017768059)(media/15695556173148/15695561731504.png)]