简介
Charles 是在 PC 端常用的网络封包截取工具,在做移动开发时,我们为了调试与服务器端的网络通讯协议,常常需要截取网络封包来分析。除了在做移动开发中调试端口外,Charles 也可以用于分析第三方应用的通讯协议。配合 Charles 的 SSL 功能,Charles 还可以分析 Https 协议。
Charles 通过将自己设置成系统的网络访问代理服务器,使得所有的网络访问请求都通过它来完成,从而实现了网络封包的截取和分析。
Charles下载:https://www.charlesproxy.com/latest-release/download.do
Charles 是收费软件,可以免费试用 30 天。试用期过后,未付费的用户仍然可以继续使用,但是每次使用时间不能超过 30 分钟,并且启动时将会有 10 秒种的延时。因此,该付费方案对广大用户还是相当友好的,即使你长期不付费,也能使用完整的软件功能。只是当你需要长时间进行封包调试时,会因为 Charles 强制关闭而遇到影响。
Charles激活码:Registered Name: https://zhile.io License Key: 48891cf209c6d32bf4
Charles 主要的功能包括:
- 截取 Http 和 Https 网络封包。
- 支持重发网络请求,方便后端调试。
- 支持修改网络请求参数。
- 支持网络请求的截获并动态修改。
- 支持模拟慢速网络。
激活步骤:
HTTP代理设置
设置PC端代理端口号
设置端口号如:8888(默认,也可更改,手机设置代理与之输入一致即可)
⚠️这边注意,如果打开浏览器出现如下页面:
多半因为,MAC系统未安装charles证书导致,解决方法如下:
将证书改为始终信任就可正常访问百度啦~,并且charles里也有相应的请求记录了。
设置手机端代理端口号
查看IP地址
注意→手机连接与Mac相同的无线网,查看当前Mac IP地址。
IOS手机代理设置
设置-无线局域网-配置代理-手动,输入上一步电脑的IP地址,和Charles设置的端口号。
安卓手机代理设置
设置-WLAN,进入已连接WiFi手动设置(端口需与PC端设置端口号一致)
不同安卓手机弹出设置代理入口不同,如果进入网络详情页无代理项,可在WLAN列表长按wifi名称弹出代理设置如下:
当手机进行数据请求时,Charles 将弹出是否允许连接此代理(选择允许 allow),之后便可进行http抓包
HTTPS代理设置
上面讲述了http的代理设置,但有时候发现抓到的https全是乱码,故需要进行https代理设置,手机上需要安装Charles SSL证书认证,证书下载地址:charlesproxy.com/getssl,以下分别是iOS和安卓手机的证书安装方法。
Pc端SSL设置
选中Proxy→SSL Proxying Setting
开启SSL代理,并添加信任地址
IOS证书安装步骤
点右上角安装,提示输入手机锁屏密码,密码输入完成后安装成功
最后进入设置-通用-关于本机-证书信任设置,选择Charles信任-继续,安装完成!
安卓手机安装步骤
证书下载成功后,进入设置-更多设置-系统安全-从存储的设备安装页面,查看已下载的证书,选择证书安装,输入证书名称,证书命名可随意填写,确定后安装成功!
PS:以上为小米手机安装路径,不同安卓手机设置里面选择不同,可自行查找系统安全进入证书安装。
Charles的功能使用
- 视图 Structure 和 Sequence
- 过滤Focus
- 重复请求 Repeat/Repeat Advanced (可做简单的并发压测)
- 断言 Breakpoints
- 重定向Map Remote
- 网速模拟 Throtting
- …
使用文档参考: