使用 Charles 对 Android 设备进行 Https 抓包

背景

在日常 Android 开发及测试过程中,经常需要查看或验证网络数据的内容,使用 Charles 可以很方便的对网络数据进行抓包。

Android 手机抓包方法

网上相关文章较多,这里不再赘述,如:

使用Charles进行HTTPS抓包 - 简书背景: 在进行App测试或定位线上问题时,经常会遇到抓取HTTPS数据包的需求。一般在windows上会使用fiddler,Mac上使用Charles。对于https请求,抓...https://www.jianshu.com/p/7a88617ce80b

Android TV 盒子抓包方法

写在前边的话

  • 该方案的缺点是只有添加了证书的应用才能进行 Https 抓包。
  • 不同机子的 charles 证书不一样,需要个人用自己 charles 的证书进行打包。

方案

Android TV 盒子连接 Charles 进行 Http 抓包的方式和手机端一样,只需要在 TV 网络上配置好 Charles 的代理地址即可。

但和手机端不同,TV 盒子无法在本地手动安装 Charles 根证书。参考 Charles 官网(SSL Certificates • Charles Web Debugging Proxy),如果想对开发项目进行 Https 抓包,需要使用以下方法。(手机抓包也可以使用此方法)

  1. 从 Charles 应用程序导出 cer 根证书。命名随意,但需和后续步骤内文件名对应,建议命名为 'charles_ssl_proxying_certificate.pem';
  2. 将该证书作为原始文件添加到项目中。路径地址:src/main/res/raw;
  3. 在 src/main/res/xml 目录下创建一个名为 “network_security_config.xml” 的新 xml 文件;
  4. 将以下内容粘贴到该 xml 文件中:
    <?xml version="1.0" encoding="utf-8"?>
    
    <network-security-config>
    
        <base-config cleartextTrafficPermitted="true">
    
            <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>

  5. 将该文件引用添加到 AndroidManifes.xml 文件中,如下:

    <?xml version="1.0" encoding="utf-8"?>
    
    <manifest ... >
    
        <application
    
            android:networkSecurityConfig="@xml/network_security_config"
    
            ... >
    
            ...
    
        </application>
    
    </manifest>

如果已经在 AndroidTV 上配置好代理,打包运行后,就可以进行 Https 抓包了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值