Charles工具抓包
1.安装与破解Charles
Charles下载地址:https://www.charlesproxy.com/download
Charles在官网下载后不注册购买只能使用30天,可以去网上下载破解后的charles.jar文件替换本地的,这是在线破解工具https://www.zzzmode.com/mytools/charles
2.界面基本介绍和配置
设置Charles端口号:Proxy>Proxy Settings
设置端口号如8888,下面两个都要勾上,点击OK保存成功
3.抓包iOS
1.iOS与安装Charles设备连接同一个网络,iOS打开设置>无线局域网配置代理,配置代理为手动,输入服务器IP地址和端口号。端口号就是上面Proxy Settings自己设置的(我设的8888),服务器IP地址在Charles里 Help > Local IP Addresses可查看。
2.安装证书:如果不装证书无法抓取https请求。Charles里选择Help > SSL Proxying根据提示安装相应系统证书,iOS浏览器访问chls.pro/ssl, 安装证书后在iOS设置>通用>描述与法律文件选择信任该证书。
注意:iOS使用Charles 代理后,App Store显示无法连接问题:
需要在SSL Proxying Setting设置Exclude为:
Host : *apple* Port 不填
Host: *mzstatic* Port不填
点击OK后,App Store即可正常访问
4.抓包本机请求(Mac)
抓取Mac本机Chrome浏览器请求要设置代理服务器ip和端口:
1.勾选macOs proxy
2.系统偏好设置>网络>高级>代理>http/https请求要设置代理服务器(本机ip和端口号与Charles设置的端口号要一致,设置的代理服务器地址可以为127.0.0.1或者局域网ip地址)
注意:抓取本机请求时不能连VPN和防火墙
5.常见问题
1.unkown问题
没装证书,或者证书没信任
2.乱码
host没添加
3.无法抓取本机请求时,检查是否勾选MacOs proxy/windows proxy,检查vpn是否关闭。尝试重新start recording。
6.其他
一切设置正常后,Charles无法抓取请求的原因:
1.安卓7.0以上无法进行抓包,为了安全考虑安卓做了防抓包机制
2.使用flutter写的页面不能抓取到,Flutter 的网络请求不走手机的系统代理的,需要在在代码中动态设置代理(仅测试,上线需删掉)