本文使用的Charles版本是4.0.2
如果把通信比喻成传纸条的话,那么抓包就是查看纸条内容。
Charles是一个http抓包工具,看不了更底层的东西如tcp。
手机抓包
当我手机打开app点点点的时候,怎么知道向服务器请求的什么,又返回的什么呢?
通过Charles代理,手机->Charles->目标网站。这样就捕获到了传输的内容。
这对于探索、调试非常方便。
比如弄爬虫的时候看看有哪些接口、数据格式怎样的如何如何。
对于app后台开发是居家旅行必备良药。
Map Local
有时候想看看改变个数据,app界面会有什么反应,如果直接改代码来调试就太麻烦了,可以直接返回一个假的数据。达到移花接木的效果。
比如将某个接口给map local到本地的fake.json,这样接口拿到的不是服务器返回的,而是我写死的数据。
Map Remote
上面是local,这里是remote。local是映射到本地文件系统,而remote是映射到另外一个server端。
当然,如果是要全局映射到另外一个server端的话,还是直接修改hosts比较方便。
修改包
有几种方式
- 右键点Compose。一次性修改。
- rewrite。持久性修改。
- breakpoints。交互性修改。会在请求的request和response分别停留,给你修改的机会。
Copy cURL Request
curl的请求串。
模拟网络环境
Throttle Settings.
想感受下之前用调制解调器拨号上网的感觉,选”56 kbps Modem”。
抓取https请求
需要安装证书。以iPhone为例。
- 使用手机连接Charles
- 在手机上用Safari访问chls.pro/ssl
- 会自动提示安装个东西,安装即可
当然,要捕获https请求还需要在Charles中右键Enable SSL Proxying。