现在大部分App都使用了https对接口进行加密,为了活动我们需要的数据,这时候我们就需要使用Charles进行抓包了。
安装
Charles官网下载对应版本即可
注意⚠️:下载安装完成后,如果不进行破解的话,使用一段时间后就会再次弹出广告。可以使用以下注册码进行注册。
//注册码1
Registered Name:https://zhile.io
License Key:48891cf209c6d32bf4
//注册码2
Registered Name:macenjoy.co
License Key:BBF36640E8D382CAA3
配置Charles
- 配置电脑的代理端口,找到
Charles
的Proxy
中的Proxy Settings
进行相关设置,一般默认即可。
- 在
Charles
的Help
中的Local IP Addresses
找到本地电脑的IP
地址,并记录下来。如我的是:192.168.200.63
。
- 在
Charles
的Help
中SSL Proxying
的Install Charles Root Certificate
安装证书。
注意⚠️:我们开始按照的证书是不被信任的,这时候我们需要去钥匙串中去主动信任。
- 在
Charles
的Proxy
中的SSL Proxying Settings
添加一个SSL代理,并在Access Control Settings
中完成设置。
手机配置
- 手机连接上和电脑相同的
wifi
,不能电脑连接本地。 - 在手机的
http
代理设置中进行代理设置。点击相应wifi
进入设置页面,点击配置代理,选择手动,填入刚刚记录的IP地址和配置的端口号。我这边分别配置192.168.200.63
和8888
- 打开Safari浏览器,访问chls.pro/ssl 下载证书并且安装,期间
Charles
会有弹框,选择允许即可。
- 到手机端,打开设置可以看到已下载描述文件,点击可以直接安装或者打开
设置-通用-VPN与设备管理-描述文件-安装
。
- 到手机端,打开设置-通用-关于手机-证书信任设置-打开相应的证书开关。
抓包
按照以上设置我们就能够正常抓包,查看相应数据了。
Charles
的URL
映射(修改URL
等)
将一个请求重定向到另外一个请求。比如,测试中线上环境有问题,测试环境没有问题时,可将线上环境映射到测试环境进行测试。映射分为两种,一种是Map Remote
,一种是Map Local
。
-
Map Remote
是将某个网络请求重定向到另一个网络请求。 -
Map Local
是将某个网络请求重定向到本地的某个文件。
举个:以Map Remote这种方式:把https://test1.baidu.com
映射到http://test2.baidu.com:8000
。
打开Charles
菜单栏中的Tools
->Map Remote
,勾选上Enable Map Remote
,然后点击Add
按钮设置即可。
注意⚠️:Protocol
、端口及Path
。
Charles
请求拦截
通过Charles
拦截请求,我们能够修改请求参数和请求结果相关数据。
- 在url列表中,找到需要拦截的url,右键选择
Breakpoint
。然后重新请求这时候我们会自动跳到Breakpoint
的Edit Request
中。这时候我们能够修改Request
相关参数等
- 修改完成后,点击
Execute
进入请求返回结果,这时候我们点击Edit Response
并且选择Json Text
,这时候我们就能修改请求返回结果了,改成我们需要的结果再次点击Execute
就可以让接口相应结果达到我们要的结果。