参考转载:https://testerhome.com/topics/15491
一,简介
Charles 是一个 HTTP 代理/ HTTP 监视器/反向代理,使开发人员能够查看其机器和 Internet 之间的所有 HTTP 和 SSL / HTTPS 流量。 这包括请求,响应和 HTTP 标头(包含 cookie 和缓存信息)。
二,下载
下载地址:https://www.charlesproxy.com/download/
三,安装
1,从网站下载完软件资源包之后,将其解压出来,双击将它打开运行,按提示进行安装即可
四,设置代理+安装证书
- 电脑:
(1)启动 Charles 后,需要将 Charles 设置成系统代理,选择菜单中的 “Proxy” –> “MacOS Proxy” 来将 Charles 设置成系统代理
(2)给电脑安装CA证书,进入Charles的Help菜单中,点击SSL Proxying-Install Charles Root Certificate,安装好后信任此证书。之后通过浏览器请求的网址都会出现在这里。点击某一个网址后会出现请求信息,点击具体的请求后可看到Request和Response等信息。
(3)需要注意的是,Chrome 和 Firefox 浏览器默认并不使用系统的代理服务器设置,所以在默认情况下无法截取 Chrome 和 Firefox 浏览器的网络通讯内容。如果需要截取的话,在 Chrome 中设置成使用系统的代理服务器设置即可,或者直接将代理服务器设置成 127.0.0.1:8888 也可达到相同效果。
- 手机:
(1)首先需要将 Charles 的代理功能打开。在 Charles 的菜单栏上选择 “Proxy”–>“Proxy Settings”,填入代理端口 8888,并且勾上 “Enable transparent HTTP proxying”
(2)在要抓包的手机上点设置-网络-配置代理,代理ip填写电脑当前使用ip,端口号:8888, 然后在手机浏览器里输入http://charlesproxy.com/getssl,下载安装charles证书。
(3)如果是苹果手机,需要在设置-通用-信息证书,找到此证书点击信任,设置完成后即可对手机抓包。
六,基本使用
1,过滤请求
2,使用本地数据 (Map Local)
这个功能主要是拦截服务端数据,做本地修改.
注意:不需要 Map Local 的时候,在 Tools-Map Local 中把这个接口关闭.
(1) 复制响应结果中 json 到存储到本地文件中
(2) 在本地文件中修改内容
(3) 点击接口,右键选择 Map Local
(4) Map To 选择刚才修改过的 json 文件
2,接口重定向 (Map Rmote)
这个功能主要是把接口代理到其他环境上
- 在 Map Rmote 中写上要代理接口
3,重写 (Rewrite)
重写功能可以删除、修改、增加,head、body、url、response 等参数
(1) 位置在 Tools->Rewrite 下,需要增加一个接口地址,增加一个重写规则
(2) 接着上实例,把 bid=3152 替换成 1937,此时完成了一次 body 数据重写
4,断点
断点功能主要修改 request 和 response 内容,这个时候接口是在 Charles 代理层被拦截,还没有实际到手机设备上.
(1) 选择接口 - 勾选 BreakPoints-再次请求接口
(2) 修改 request 中 body 参数 - 点击 Execute-发送请求
(3) 修改 response 中 status code 参数 - 点击 Execute
Ps: 这个功能比较适合模拟接口 500、超时,客户端接收 response 是有超时时间的,如果修改数据的时间太久,客户端会展示错误页面,那么做断点调试就没有意义了.
5,模拟发送请求
(1) 选择接口右键选择 Compose
(2) 修改数据,点击 Execute 按钮发送请求
6,重发请求 (Repeat)
(1) 接口右键选择-Repeat,表示重新发送一次请求
(2) 接口右键选择-Repeat Advanced,填写发送的次数,循环发送多次请求
* Iterations 表示次数
* Concurrency 表示并发线程数
7,模式弱网
(1) Proxy-Throttle Settings
(2) 勾选 Enable Throttling
(3) Only for selected 表示仅选择的域名做弱网
(4) Throttle preset 表示要模拟的网速,可以改上行和下行带宽,还有丢包率











