写在前面的话
Charles 介绍
Charles 的主要功能
网络请求拦截与分析
Charles 通过将自己配置成系统的代理服务器,拦截所有通过它的 HTTP 和 HTTPS 请求与响应。开发者可以查看每个网络请求的详细信息,包括请求的 URL、请求头、请求体、响应头、响应体、状态码等,便于调试和分析网络通信问题。
SSL 抓包
Charles 支持 HTTPS 协议的抓包。通过安装 Charles 提供的 CA 证书,Charles 能够解密 SSL/TLS 加密的网络请求,查看明文内容。这对分析第三方应用的网络通讯协议特别有用。
重发和修改请求:开发者可以使用 Charles 修改网络请求的内容,然后重新发送这些请求。这种功能常用于测试接口,模拟不同的请求参数或 HTTP 状态码。
带宽限制
Charles 允许开发者模拟不同网络环境下的带宽、延迟、丢包等网络条件,从而分析应用在不同网络环境下的表现,特别适用于优化移动端应用的网络性能。
会话记录与导出
Charles 能够保存网络抓包会话,便于以后查看和分析。它还支持导出会话为多种格式,如 HAR 文件格式,用于进一步分析或分享。
Charles 的应用场景
移动端开发调试
在开发 Android 或 iOS 应用时,调试应用与服务器的网络通信协议是非常常见的需求。通过配置移动设备的代理为 Charles 的 IP 地址和端口,Charles 可以拦截和分析应用发出的网络请求。这在接口调试、错误定位、网络性能优化等方面尤为有用。
第三方应用分析
Charles 也可以用于分析第三方应用的网络通讯协议。通过配置代理以及 SSL 证书,即可捕获到 HTTPS 请求,并解密查看明文数据。这在逆向工程、协议分析、数据抓取等场景中有较大应用价值。
网络性能调优
利用 Charles 提供的带宽控制功能,开发者可以在不同的网络条件下(如慢速 3G、4G 网络)模拟测试应用的表现,帮助优化网络请求的响应速度、减少延迟,提升用户体验。
注意事项
隐私与法律问题:在使用 Charles 抓包时,要注意遵守相关的法律法规和隐私政策。未经授权抓取他人网络请求,尤其是解密 HTTPS 请求,可能会侵犯隐私和违反法律。
证书信任问题:安装 Charles CA 证书后,部分应用可能会检测到非官方证书而阻止网络请求。在这种情况下,可以考虑使用 Charles 的 SSL Pinning 解除功能,或者尝试其他抓包工具。
Charles使用步骤
下载安装Charles
前往官网下载Charles 官网下载地址
安装对应系统的版本
设置SSL代理
这样就可以对抓取https的链接
启动Chrales,打开 "菜单栏 -> Proxy -> SSL Proxying Settings"
在PC上安装本地证书
菜单栏 -> Help -> SSL Proxying -> Install Charles Root Cert...
在安卓设备设置代理
-
查看代理IP和端口
-
确保安卓设备和PC在同一个局域网后,修改安卓的WLAN设置
修改红框中的内容,点击保存后,电脑上会出现弹窗,点击"allow"确认。
- 准备charles证书
以下方式选一种即可
-
安卓设备启动浏览器,输入"http://chls.pro/ssl",下载CA证书
注意:可能浏览器有网站不安全之类提示。
-
PC浏览器打开,输入"http://chls.pro/ssl",下载CA证书后复制到安卓设备
- 设置CA证书
在安卓设备的设置中搜索"CA证书",进入CA证书设置。安装上一步准备的CA证书。
至此,即可在Charles中查看安卓设备的被抓的内容。