背景
在日常 Android 开发及测试过程中,经常需要查看或验证网络数据的内容,使用 Charles 可以很方便的对网络数据进行抓包。
Android 手机抓包方法
网上相关文章较多,这里不再赘述,如:
使用Charles进行HTTPS抓包 - 简书背景: 在进行App测试或定位线上问题时,经常会遇到抓取HTTPS数据包的需求。一般在windows上会使用fiddler,Mac上使用Charles。对于https请求,抓...https://www.jianshu.com/p/7a88617ce80b
Android TV 盒子抓包方法
Android TV 盒子连接 Charles 进行 Http 抓包的方式和手机端一样,只需要在 TV 网络上配置好 Charles 的代理地址即可。
但和手机端不同,TV 盒子无法在本地手动安装 Charles 根证书。参考 Charles 官网(SSL Certificates ? Charles Web Debugging Proxy),如果想对开发项目进行 Https 抓包,需要使用以下方法。(手机抓包也可以使用此方法)
- 从 Charles 应用程序导出 cer 根证书。命名随意,但需和后续步骤内文件名对应,建议命名为 'charles_ssl_proxying_certificate.pem';
- 将该证书作为原始文件添加到项目中。路径地址:src/main/res/raw;
- 在 src/main/res/xml 目录下创建一个名为 “network_security_config.xml” 的新 xml 文件;
- 将以下内容粘贴到该 xml 文件中:
<?xml?version="1.0"?encoding="utf-8"?>
<network-security-config>
????<base-config>
????????<trust-anchors>
????????????<certificates?src="system"?/>
????????</trust-anchors>
????</base-config>
????<debug-overrides>
????????<trust-anchors>
????????????<certificates?src="@raw/charles_ssl_proxying_certificate"/>
????????????<certificates?src="user"?/>
????????</trust-anchors>
????</debug-overrides>
</network-security-config> -
将该文件引用添加到 AndroidManifes.xml 文件中,如下: <?xml?version="1.0"?encoding="utf-8"?>
<manifest?... >
????<application
????????android:networkSecurityConfig="@xml/network_security_config"
????????... >
????????...
????</application>
</manifest>
如果已经在 AndroidTV 上配置好代理,就可以进行 Https 抓包了。
注:该方案的缺点是只支持 Android 7.0 以上系统,并只有添加了证书的应用才能进行 Https 抓包。
|