简介
是什么?
Charles是常用的截取网络封包的工具,Mac、Windows和linux下均可用
能做什么?
- 支持截取Http和Https(支持SSL代理)网络封包,
- 支持流量控制,可以模拟慢网、弱网等case
- 支持AJAX调试,可以自动格式化json或xml
- 支持重发网络请求,进行后端压测
- 支持网络请求和响应内容的mock修改
相关软件
fiddler、tcpdump
工作原理

安装配置
Charles安装
代理设置
设置charles为设置成系统代理

开启Charles的代理功能

手机连Charles
- Mac上查IP Address
- 手机Wifi连对应服务器+端口(8888)
- 第一次连接好后,Charles会弹出对应询问框(连上才会有),点击allow开始使用
Https截取配置
给Mac安装证书,并信任证书
给手机安装证书(需要安装伪CA证书)
Charles设置SSL代理
功能介绍
模拟弱网

修改请求或响应内容
- Breakpoint
临时性网络内容修改
- Rewrite
适合对某一类网络请求进行一些正则替换,以达到修改结果的目的。主要可以对某些匹配请求的header、host、url、path、query param、response status、body进行rewrite - Repeat
用作接口压力测试 - Map
MapRemote重定向,适用于不同服务器切换测试
MapLocal重定向到本地数据,适用于本地修改及时查看数据响应 - DNS Spoofing Setting
适用于需要将域名打到ip地址的服务器上
反向代理

常见坑
Charles与翻墙软件冲突
Charles设置MapLocal在Android中出现乱码
原因:MapLocal的Response的Headers中Content-Type值为text/plain,没有指定编码,Android的网络解析框架如果不支持的话则会出现乱码
解决:Tools->Rewrite->Rewrite Rule
Charles连接不上
其它配置正确情况下,请先用网线试下,是否可以连接成功,如果可以的话,基本确认是Mac的wifi网络对手机不可见,如果属于公司网络,联系公司内网进行设置,保证手机和Mac的网段一致
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.
Comment
