Charles和手机的一些基础配置
- help–>SSL Proxying–> Install Charles Root Ceriticate,找到Charles Proxy CA(xxx)——>打开——>选择信任——>始终信任
- help–>SSL Proxying–> Install Charles Root Ceriticate on a Mobile Device or Remote Browser,此时你的Android手机必须和电脑在同一个网络/wifi里,手机选择和电脑相同wifi(如我的手机连接wifi是ChinaNet-WKYD)——>长按此wifi弹框中选择修改网络——>显示高级选项——>服务器主机名输入框中输入电脑ip地址(这个自己百度下吧),服务器端口号填写8888——>保存即可,此时手机和电脑绑定在一起一遍电脑抓手机上请求网络数据
手机配置好后,在手机浏览器打开上面弹框里提到的链接chls.pro/ssl,下载证书,然后在手机设置——>安全和隐私——>更多安全设置——>从SD卡安装证书——>选择我们刚下载的证书,安装即可 - Proxy–>SSL Proxying Setting–>选择SSL Proxying——>点击add在弹框中port里填写443(443代表通用https端口号)
Ps:这里要特别注意,如果你的https链接自带了一个端口号,比如https://www.baidu.com:34567,那么https端口号为34567,你在上面的弹框中port里面填写34567,然后host里填写https://www.baidu.com,然后点击ok保存,要不然把第5点考虑了抓到的数据也是乱码
(我就被这个问题给坑了,iphone手机没有问题,就Android手机有问题,我就纳闷了) - 如果你的手机系统是Android7.0及以上,请参照网络上7.0、8.0、9.0处理方案,
在AndroidManifest.xml文件需要加入以下配置:
android:networkSecurityConfig="@xml/network_security_config"
配置文件:res/xml/network_security_config.xml代码如下
<base-config cleartextTrafficPermitted="true">
<trust-anchors>
<certificates src="system" overridePins="true" />
<certificates src="user" overridePins="true" />
</trust-anchors>
</base-config>
</network-security-config>