charles详解及使用

发布时间 2023-11-09 09:43:45作者: 小强找BUG

一、基础

1、Charles简介

    中文名青花瓷,是HTTP服务代理器,当浏览器连接Charles的代理访问互联网时,Charles可以监控浏览器发送和接受的所有数据。她允许开发者查看所有连接互联网的HTTP通信。

    特点:跨平台、有免费版本(启动需要10s、运行只能使用半小时)

2、Charles工作原理


 
 
使用前置条件:
    1、运行Charles并配置代理
    2、在客户端配置代理和代理端口
使用步骤:
    1、客户端发送请求
    2、Charles接受情况再发送给服务器
    3、服务端返回请求结果给Charles
    4、由Charles转发给客户端

3、Charles主要功能

支持HTTP和HTTPS的代理
支持流量控制(用于模拟弱网)
支持接口并发请求(用于简单的性能测试)
支持重发网络请求(用于接口测试,用的比较少)
支持断点调试功能(发送或接收时修改请求/返回信息,模拟请求和响应)

4、Charles优点

相比fiddler:
    1、支持多系统
    2、支持按域名和按接口查看报文
    3、支持反向代理
    4、支持网络限速、选择网络类型
    5、可以解析AMF协议——不常用

二、安装


1、Charles安装

    下载:[https://www.charlesproxy.com/download/](https://www.charlesproxy.com/download/)

2、安装证书


 
 

3、Charles组件学习


 
 

三、代理设置

1、 Charles开启代理
Proxy → Proxy Settings
1)端口号,默认8888,如果有冲突,则需要修改
2)点击OK ,打开代理

2 Windows代理设置 ——设置后就能用charles抓取windows上的数据
1、chrome 浏览器输入Chrome://seetting ,在搜索栏中输入【代理】,点击【打开您计算机的代理设置】
2、在打开的Windows代理设置页面中,打开【使用代理服务器】,并填写代理服务器地址及端口号即可(即 charles所在机器的ip和端口号)。

备注:如果charles和客户端在同一台电脑,默认情况下电脑上已经设置好代理了;如果charles和客户端不在同一台电脑,一定要把电脑上的代理服务器地址改为charles所在电脑的ip和端口号。

3、MacOs代理设置 ——设置后就能用charles抓取MacOs上的数据
3.1 常规设置代理方式

    1、系统偏好设置 → 网络 → 高级 → 代理 
    2、勾选【Web代理(HTTP)】 → 输入web代理服务器地址和端口 (即 charles所在机器的ip和端口号)
    3、勾选【安全Web代理(HTTPS)】 → 输入web代理服务器地址和端口

3.2 MocOs快捷代理设置
在Charles的Proxy → macOS Proxy

备注:如果charles和客户端在同一台电脑,快捷代理可以代替代理设置。

tips:快速查看Charles所在服务器的ip地址: 【Help → Local Adress】

四、PC端抓HTTPS包

https是把http进行了封装,把http的报文进行加密了。
不配置的话,能显示https域名,但请求为unknown,报文内容都是乱码。
解决方案:安装SSL证书

Windows抓取https配置
1、Windows安装证书


 
 

2、 macOS抓取https配置


 
 

3、Charles中https代理配置


 
 

五、手机端抓包

手机端配置:
1、确保iOS 设备和Charles服务器在同一个网络下
2、在设置中选中无限局域网 → 网络 → HTTP代理 → 配置代理 → 手动
3、输入Charles服务器的i和端口号 并存储

1、IOS系统设置代理——设置后就能用Charles抓取iOS上的数据:


 
 

 
 

2、Android系统设置代理 —— 设置后就能用Charles抓取Android上的数据

手机端配置:
    1、确保iOS 设备和Charles服务器在同一个网络下
    2、设置 - WLAN - 显示高级选项 - 代理 -手动
    3、输入Charles服务器的i和端口号 并存储

如果设置后无法抓到https包,则需要安装一下手机端证书

华为手机安装证书如下:
1、浏览器中输入chls.pro/ssl提示下载证书
2、在【设置 - WLAN 更多->高级WLAN设置->安装证书 】安装后,证书的用途选择【VPN和凭证】,不要选择【WLAN】亲测不行。
3、安装成功后即可抓取https包

六、流量配置

1、Proxy → Throttle Setting
2、勾选 Enable Throttling
3、选择对应的网络类型

Bandwidth ——带宽  -- 例如 512kbps
Reliability   ——可靠性
Stabillith    —— 稳定性

弱网一般用于app测试,看app在弱网情况下会不会闪退、登出等异常。

带宽一般指下载的理疗速度
512kbps(kbps=kb/s)=512/8=64KB/s
1M=1024/8=128KB/s
8M=8*1024/8=1024KB/s

七、断点配置(用于编辑请求参数、编辑请求返回值)

1、选择接口,右键 - 选择“BreakPioints”
有的请求后面有随机数,设置断点后因为随机数不同,可能断不到,此时在【Proxy → BreakPioints Setting】中编辑一下请求,把随机数去掉即可
2、在浏览器中访问这个接口
3、进入断点页面,展示接口请求的信息,此时请求还未发送到服务器
4、“Edit Requset” 编辑请求信息
5、点击“Execute” 执行请求
6、执行后,接口的返回数据也会展示在charles中,不会直接返回浏览器
7、“Edit Response” 编辑服务器的返回信息
8、点击“Execute”,把修改后的返回信息,反馈给浏览器,在浏览器中就能看到自己编辑的返回信息


 
 

 
 

遇到的问题

问题1、用着好好的,突然有一天无法抓包了
问题原因:charles证书过期了
help→SSL Proxying → Install Charles Root Certificate


 
22年5月使用时发现charles不能用了

解决办法:
1、PC端reset证书、再信任即可
help→SSL Proxying → Reset Charles Root Certificate
2、手机端需要连接到代理、重新下载安装证书、信任证书后使用



作者:时光不说话
链接:https://www.jianshu.com/p/80f5c6df0be7
来源:简书