本文已参与「新人创作礼」活动,一起开启掘金创作之路。
1.1 Charles的主要功能:
- 抓取 http 和 https 的请求和响应,这是最常用的。
- 重发网络请求,方便后端调试。
- 修改网络请求参数(客户端向服务器发送的时候,可以修改后再转发出去)。
- 网络请求的截获和动态修改。
- 支持模拟慢速网络,主要是模仿手机上的2G/3G/4G的访问流程。
- 支持本地映射和远程映射,比如你可以把线上资源映射到本地某个文件夹下,这样可以方便的处理一些特殊情况下的bug和线上调试(网络的css,js等资源用的是本地代码,这些你可以本地随便修改,数据之类的都是线上的环境,方面在线调试)。
- 可以抓手机端访问的资源(如果是配置HOST的环境,手机可以借用host配置进入测试环境)。
1.2 Charles工作原理 客户端发起请求,请求通过charles转发给服务器,服务器返回响应,响应通过charles转发给服务端。即:把信息从A传递给B,把回信从B传递给A。
graph LR;
客户端-->|requst|charles;
charles-->|response|客户端;
charles-->|requst|服务器;
服务器-->|response|charles;
1.3 Charles下载与安装
A:官网下载链接:www.charlesproxy.com/download/
B:安装 打开安装页面,选择默认项往下安装即可。
1.4 注册 安装完成后,需要进行注册,注册步骤:(选择位置如下图)
- 打开charles ---> help---> register
- 输入Registered Name: zhile.io License Key: 48891cf209c6d32bf4
- 打开Proxy ---->点击 maxOS Proxy,即可开始抓浏览器网页请求。
1.5 Https设置及安装证书 A:先设置代理(如图所示)
B:(1)安装根证书,路径Help--SSL Proxying--Install Charles Root Certificate
(2)弹出添加证书弹框,点击左下角添加证书按钮(图1),进入详情页面,信任此证书(图2),钥匙串选择-登陆。
备注:添加证书中未选择本地项目:提示错误:-25294,选择登陆,即可避免此问题。
报错信息如下图。
(3)进入钥匙串访问页面,选择Charles…,进入详情页,全部选择始终信任。至此证书添加完成。
C:(1)代理配置:在浏览器抓包过程中,出现很多unknown,此时需要配置代理,路径:Proxy--SSL Proxying Settings
抓包出现unknown:
配置代理:
(2)打开SSL设置界面,将图上所示复选框选中
点击‘Add’按钮,在弹出框的‘Host’和‘Port’都输入‘*’,最后点击OK,根据提示,这样配置可以抓取所有的https包