1、charles的Map Remote功能(指定的网络请求重定向到另一个网址),说白了就是你本来要请求A接口拿数据,重定向后,你实际请求的是B接口,拿到的是B接口返回的数据。
入口Tools->Map Remote
本次测试过程中的使用场景是:使用charles来抓app的网络包,抓取的请求是https的网络请求,但是使用的安卓测试机的系统版本为Android12,简单的在测试机上安装charles的SSL安全证书(用户级别)也无法成功抓取,需要root权限将SSL证书从用户级别的安装改成系统级别的安装,因为获取测试机的root权限需要BL(BootLoader)解锁(新绑定的小米账号,需要等一周),所以安装系统证书只好暂时放弃;选择了VirtualXposed这个工具来绕过安全证书来抓取,原理可以参考这篇文章:Android 7.0+使用VirtualXposed+Charles进行抓包 - 知乎
那么问题来了,如果我使用VXP这个工具来抓包会导致app发送给后端的请求中的某个参数为空,比如下面https://test-api/path/api?a=1&b=这个接口,正常请求的话b参数是device_id,但是在VXP里面运行是没有这个值的,所以只好通过这种方式映射有值的b参数的url,通过这种方式app请求后端就带上了设备ID(device_id)