charles 功能记录
配置抓取特定的接口 Filter 过滤
Filter 支持正则表达式 (settings -> Filter users regex)
## 抓取某一个网站的接口并且过滤已 collect 结尾的请求
qjyedu-api.com.*[^collect]$
- 优秀的正则能快速抓取到我们想要的数据,排除掉干扰信息
过滤请求
- 正则无疑是最便捷的方式,同样还有如下几种方式可以尝试
```bash
过滤系统请求
MenuList -> Proxy -> maxOSProxy
过滤某一个具体的请求
Sequece -> Menu -> BlackList
这种方式会加入到黑名单中,解开方式
Menlist -> Tools -> BlackList (remov the point request)
#### 代理手机请求
* charles 可以代理手机请求,对于本地调试有这无与伦比的便利
```bash
## 开启代理
MenuList -> proxy -> prxy Settings -> Enable transparent HTTP proxying
## 先安装本地证书
MenuList -> Help -> SSL proxying -> Install Charles Root Certificate
## 安装手机证书
MenuList -> Help -> SSL proxying -> Install Charles Root Certificate On a Mobile Devie or Remove Browser
## 上一步一般安装不成功,别灰心,因为 高版本系统的手机 有安全限制(脸白的这一步可以跳过了)
MenuList -> Help -> SSL proxying -> Save Charles Root Certificate
## 保存证书到你电脑上,想办法发到手机上,在手机上安装
## 打开手机Wifi 指定代理 地址 和 端口
## 一般电脑这时有个弹窗,忘记说的啥了,点是就对了
- 经过上面这几部,电脑已经可以抓取手机包了
调试生产环境App
- 手机抓包后,有的时候需要调试问题,可以将远程地址映射到本地,也就是使用线上包,调试本地代码
```bash
过滤某一个具体的请求
Sequece -> Menu -> Map Remote
根据弹出的地址,我们可以缩写或者放到地址范围,去调试不同的接口
* 方法很简单,只是这个功能少有知道
#### 如何和科学上网工具并存
* charles 和大部分科学上网工具有冲突,遇到抓不到包的情况,优先查看是否开启科学生网工具
使用浏览器插件 SwitchyOmega
对chalrles 和 科学上网工具分别 添加 代理地址,在不同需求时连接不同代理
```bash
v2ray socks5 127.0.0.1 1080
charles http 127.0.0.1 8888