参考:https://blog.youkuaiyun.com/luochoudan/article/details/72801573
原理:
设置charles为服务器和客户端直接的过滤器,让所有的网络请求都经过charles
Proxy----Proxy Setting----Enable transparent HTTP proxying
1.HTTP
1)配置代理端口号;
Proxy -》 Proxy Settings -》 Port,port可以随便指定,默认为8888,不改就好;
2)配置代理的ip;
Android手机的网络代理一般在设置页面,点击当前连着的wifi,手动修改代理配置,然后将你的电脑ip和第一步中配置的端口号填写到手机上即可。
2.HTTPS
1)在上面两步的基础上,你需要为charles添加SSL Proxiyng。具体的步骤是:Proxy -》 SSL Proxiyng Settings -》勾选“Enable SSL Proxying”,并点击下方的Add,你可以这样配置:
host是你要抓的域名或者ip(这里用通配符*,表示抓去所有的https请求),port为443。
2)下载手机的SSL证书。charles里点击help -》SSL Proxying-》Save Charles Root Certificate,然后选择目录,保存一个类似于这样的“charles-ssl-proxying-certificate.pem”文件
3)给手机安装证书: adb push charles-ssl-proxying-certificate.pem sdcard/charles.pem
打开手机的文件管理器,找到charles.pem,点击安装
如果安装不成功,打开手机设置 -》更多设置 -》系统安全 -》从存储设备安装 -》选择charles.pem,点击安装
如果安装还不成功,请尝试把文件重命名为.crt,再重复上述操作
4)给电脑安装证书,第二步下载的证书直接双击安装即可
这样就可以抓到https的数据包,且没有乱码,没有unknown~~