Charles使用
下载
https://www.charlesproxy.com/download/
获取电脑IP地址
方法一:cmd命令:ipconfig,查看IPv4地址
方法二:charles → Help → Local IP Address
设置拦截类型
Proxy → Windows Proxy
Proxy → macOs Proxy
勾选则代表需要拦截电脑码流,否则只拦截手机码流
拦截 Chrome 和 Firefox 浏览器网络通讯内容:设置中使用系统的代理服务器设置,或将代理服务器设置成17.0.0.1:8888
移动设备抓包
1 设施端口号:Charles → Proxy Settings… → Proxies → 输入端口号
2 手机与电脑连接同一WiFi,手机长按WiFi设置代理,ip设置电脑ip地址,端口号如上述
查看此代理服务器列表:Proxy → Access Control Settings → IP Range
如点击了拒绝,可手动将IP/Mac地址到上述列表,或重启charles再次链接
默认允许所有手机连接:在上述列表中加入:0.0.0.0/0(IPv4)或::/0(IPv6)
3 安装证书:Help -> SSL proxying -> Install charles root certificate on a… → 手机配置代理 → 浏览器中输入:chls.pro/ssl → 下载成功后安装证书
Android设备
安装:设置 → 搜索“安全与隐私” → 从SD卡安装 → 找到证书并安装
验证:设置 → 搜索“安全与隐私” → 受信任的凭证 → 用户 → 查看证书
删除:设置 → 搜索“安全与隐私” → 受信任的凭证 → 用户 → 点击证书 → 删除
IOS设备
安装:自动提醒,按引导安装
删除:设置 → 通用 → 描述文件与设备管理 → 点击指定证书,删除
4 charles安装证书:
Windows:Help → Install Charles Root Certificate → 安装证书(I)… → 勾选:将所有的证书… → 选择:受信任的根证书颁发机构 → 确定 → 导入成功
Mac:Help → SSL Proxying → Install Charles Root Certificate → 双击打开arles Proxy… → 始终信任
修改码流
Map Remote
应用场景:服务器环境未准备好,转发到指定地址,查看请求,验证功能正确性
设置:选择需要转发的接口,右键 → Map Remote … → 配置转发地址 → OK
验证:Tools → Map Romote → 将需要转发的接口加入列表 → OK (Map Romote需勾选)
Map Local
应用场景:拦截响应数据,让返回的数据为指定的文件内容,实际应用中先正常请求一次接口,将响应数据复制到指定文件,然后作修改
设置:选择需要转发的接口,右键 → Map Local… → 配置Loacl path → OK
Rewrite
应用场景:手动修改请求/响应数据
设置:选择需要转发的接口,右键 → 勾选:Breakpoints → Proxy → Breakpoint Settings → 双击需要转发的接口 → 勾选Request/Response → ok → 重新触发请求 → Breakpoints页面,Edit Request,XML Text 修改请求参数 → Execute(注意时间,过长会请求超时,修改响应参数操作相似)
过滤网络请求
关键字过滤(临时):右键需要过滤的接口 → 勾选Focus → View → Sequence → 输入关键字 → Focused
固定地址过滤:Proxy → Recording Settings → Include → Add
网速控制
应用场景:测试弱网获高延迟网络场景
设置:Proxy → Throttle Setting → 勾选:EnableThrottling
可勾选:Only for selected hosts来设置指定主机访问时网络限制
重发指定接口请求
重发一次:右键需要重发的接口 → Repeat
重发多次:右键需要重发的接口 → Repeat Advanced… → 设置请求次数与间隔
Iteration:重发次数
Concurrency:并发个数
Repeat delay(ms):间隔时间
常见问题
1 抓包显示SSL权限问题?
确保charles证书和移动设备证书设置为信任
2 抓包失败?参考本文的“移动设备抓包”章节
移动设备与pc是否在同一局域网下;
移动设备是否设置代理,且代理是否正确
是否关闭防火墙,代理,翻墙软件
当移动设备连接charles时,是否允许连接
3 Request/Response信息中文乱码?
方法一:修改charles安装目录下的Charles.ini文件,增加脚本:vmarg.3=-Dfile.encoding=UTF-8
方法二:Tools → Rewrite… → 勾选:Enable Rewrite → Add → Location栏中点击Add可过滤指定地址,Type/Action栏中点击Add可具体设置,如下图所示
方法三:删除错误MapLocal