文章目录
Charles简介与安装
Charles的简介
- Charles 是在 PC 端常用的网络封包截取工具,在做移动开发时,我们为了调试与服务器端的网络通讯协议,常常需要截取网络封包来分析。除了在做移动开发中调试端口外,Charles 也可以用于分析第三方应用的通讯协议。配合 Charles 的 SSL 功能,Charles 还可以分析 Https 协议。
- Charles 通过将自己设置成系统的网络访问代理服务器,使得所有的网络访问请求都通过它来完成,从而实现了网络封包的截取和分析。
Charles的安装
打开浏览器访问Charles官网,下载相应系统的安装包,然后安装即可。
下载地址:https://www.charlesproxy.com/download/
Charles 安装证书
安装完重启电脑才会生效
抓包
在PC端抓取HTTPS请求
- 打开Charles工具,在菜单栏Proxy中勾选macOS Proxy/WIndows Proxy,使Recoding开关处于开启状态后,即可抓取PC端的请求。
在移动端进行抓包
- Charles 除了用来截取PC端的网络封包,更常用来截取手机端的网络请求(Android和iOS)。在菜单栏中点击Proxy->Proxy Settings,在窗口中进行设置端口号的设置,默认8888,如无占用则不用修改,并勾选下方的两个单选框。
移动端配置
Androd端配置
- 保持代理设置不变,在手机浏览器中输入地址 chls.pro/ssl 会开始一个下载任务
- 下载完毕后打开文件文件管理器找到刚才下载的证书,证书的格式为pem,如果手机无法识别pem格式,则需要将文件后缀改为.crt(有的手机可能是.cert)后进行安装
- 在Charles中对需要查看的请求开启SSL代理即可查看内容
iOS端配置
- 保持代理设置不变,在手机浏览器中输入地址 chls.pro/ssl 会开始一个下载任务
- 下载完毕后,在手机设置-通用-VPN与设备管理页面下,找到刚才下载的证书进行安装
- iOS10系统后,需要额外在手机设置-关于本机-证书信任设置下,开启charles证书信任
- 在Charles中对需要查看的请求开启SSL代理即可查看内容
Charles使用小技巧:
电脑或者手机设置代理后,Charles会抓取到非常多请求,无法找到我们想要的内容。
此时可以在请求列表中找到常用的域名,鼠标右键菜单栏中选择"Focus",这时未被Focus的域名就被收起在一个Other hosts的文件夹下
(也可在顶部View-Focus hosts功能下直接进行添加或者删除)
模拟慢速网络
-
在做移动开发的时候,我们常常需要模拟慢速网络或者高延迟的网络,以测试客户端表现是否正常。Charles 对此需求提供了很好的支持。Throttle Settings 和 Start/Stop Throttling 配合使用,在 Start Throttling 的状态下,可以通过 Throttle Settings 配置各种网络状态。
-
Throttle Settings 的使用方法:
- 在 Charles 中点击Proxy-Throttle Setting,在弹出的页面中勾选上 “Enable Throttling”,添加/删除/修改需要节流的请求,如无特别要求我们一般使用 * (即全部请求都走节流),如相对单一请求节流,可勾选“Only for selected hosts”
- 在设置页面中,我们还可以选择Throttle Preset,如3G、4G等
- 另外,我们还可以根据自己的需求设置Bandwidth(带宽)、Utilistation(利用百分比)、Round-trip(往返延迟)、MTU(字节)等内容
- 设置完毕后,在客户端中重新发起请求,此时客户端页面刷新速度可能会变慢很多
- 模拟慢速网络功能常用场景:
模拟一个慢速网络或高延迟的网络,测试客户端表现是否正常