背景
在日常 Android 开发及测试过程中,经常需要查看或验证网络数据的内容,使用 Charles 可以很方便的对网络数据进行抓包。
Android 手机抓包方法
网上相关文章较多,这里不再赘述,如:
使用Charles进行HTTPS抓包 - 简书背景: 在进行App测试或定位线上问题时,经常会遇到抓取HTTPS数据包的需求。一般在windows上会使用fiddler,Mac上使用Charles。对于https请求,抓.../p/7a88617ce80b
Android TV 盒子抓包方法
写在前边的话
该方案的缺点是只有添加了证书的应用才能进行 Https 抓包。不同机子的 charles 证书不一样,需要个人用自己 charles 的证书进行打包。方案
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 文件中:
<?xmlversion="1.0"encoding="utf-8"?><network-security-config><base-config cleartextTrafficPermitted="true"><trust-anchors><certificatessrc="system"/></trust-anchors></base-config><debug-overrides><trust-anchors><certificatessrc="@raw/charles_ssl_proxying_certificate"/><certificatessrc="user"/></trust-anchors></debug-overrides></network-security-config>
将该文件引用添加到 AndroidManifes.xml 文件中,如下:
<?xmlversion="1.0"encoding="utf-8"?><manifest... ><applicationandroid:networkSecurityConfig="@xml/network_security_config"... >...</application></manifest>
如果已经在 AndroidTV 上配置好代理,打包运行后,就可以进行 Https 抓包了。