在Mac电脑上使用Charles 抓包,按照Charles 的文档来设置,应该没有什么问题,设置步骤请跳转:Welcome • Charles Web Debugging ProxyCharles Web Debugging Proxy - Official Sitehttps://www.charlesproxy.com/documentation/welcome/
这里很简单,也简单的贴一些步骤出来:
1. 运行Charles;
(默认的配置一般都不用修改,我们还需要在确认一下)
2. 打开 Proxy Settings: Proxy -> Proxy Settings, 在Proxies Tab中, 确认下 "Enable transparent HTTP proxying" 和 "Support HTTP/2" 是否勾选上。
3. 打开 SSL Proxy Settings: Proxy -> SSL Proxy Settings, SSL Proxying 选项中, 确认 “enable SSL Proxying” 是否勾选上,然后添加*.* 到 Location中。
4. 查看设置代理都地址和端口号,按照如下步骤:
这就是需要设置的参数,这个页面先不要急着关闭,后面还需要用到。
5. 现在可以在手机上打开代理,设置 代理: 主机名(Proxy hostname)和端口(Proxy port):
6. 按照第4步弹窗里的说明,打开浏览器,这里最好用google或者Firefox,输入 chls.pro/ssl ;点击下载安装证书。
⚠️ 如果上述操作安装不了,也可以在浏览器中输入 charlesproxy.com/getssl 来直接下载,有的手机可以弹出安装,有的手机需要去手机的设置里手动安装,安装步骤在第4步弹窗里的说明也有。
》完成以上操作,即完成配置,现在可以去尝试运行App来查看接口访问和返回结果。
如果你发现你的App在 Charles 上抓包的接口一直显示 <unknown>:
而你又确认 Charles 以上配置都正常的情况下,请打开你的项目,查看
AndroidManifest.xml -> application中,有没有配置:
android:networkSecurityConfig="@xml/network_security_config"
network-security-config.xml:
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<debug-overrides>
<trust-anchors>
<!-- Trust preinstalled CAs -->
<certificates src="system" />
<!-- Trust user added CAs while debuggable only -->
<certificates src="user"/>
</trust-anchors>
</debug-overrides>
<base-config cleartextTrafficPermitted="true"/>
</network-security-config>