charles 作为一款实用性很强的抓包工具,在前端,客户端开发,QA 过程中都有较多的使用场景,本文主要介绍一些 charles 的使用技巧,以及常见问题的解决方案。
修改跨域接口的返回值
单纯的修改接口返回值有如下方法:
- 通过 breakpoint,缺点是每次接口有返回值都需要改一次;
- 通过 map local,将请求打到本地的某个文件;
通常 map local 是比较好的解决方案,但是在接口跨域的情况下,这种方式则无法打到目的,此时,可以使用 map remote + mockapp 实现。
安卓 app 抓 https 接口
安卓机安装证书的难度跟手机厂商和安卓版本有关,部分版本安装证书十分繁琐或无法安装证书,此时,可以尝试下面的方案:
- 首先安装 VirtualXposed
- 打开 VirtualXposed,从 VirtualXposed 的 “ 添加应用 ” 中找到JustTrustMe的 apk 安装包并执行安装,JustTrustMe 是 VirtualXposed 的一个模块,所以安装完毕 JustTrustMe 后,记得在 VirtualXposed 的模块管理里勾选一下 JustTrustMe 模块
- 重启一下 VirtualXposed 让它生效
- 想对谁家 app 进行数据分析,你需要在 VirtualXposed 里重新安装一边这个 app
接口请求不显示在 charles 中
按照以下顺序检查:
- charles 是否代理成功(通常在电脑上开启 ss 会影响 charles 的代理接口)
- 端是否配置接口代理,例如手机的接口配置、证书配置,电脑上是否开启了 mac proxy (手机上的 ss 同样会影响代理接口)
微信支付调试
微信支付需要在配置的安全域名下,安全域名可配置数量有限,测试环境下可以通过访问可支付域名(比如 a.com),然后将可支付域名的数据 map remote 到测试域名下(比如 test.b.com),此时即可使用测试环境的页面来进行支付了。