Android中7.0及以上手機無法使用Charles抓取https數據的解決方法

最近,測試小哥哥提出公司的部分7.0以上的測試機無法進行Charles抓包查看https的接口數據。

通過一波的查閱資料過後發現:android7.0+的版本新增了證書驗證,https的安全證書手機端和電腦端都必須安裝,這個是前提;又由於android手機多廠商系統定製的問題,可能有部分手機確實無法抓包,這裏,對於抓包的問題上,我們在給測試打包的時候要對我們的項目進行添加設置: 默認信任所有證書。

這個操作其實是比較敏感的,線上不能帶上這個配置;下面來說一下相關配置項:

1.在res-xml目錄中創建一個名爲 “network_security_config.xml”的文件夾:並且附上如下內容:

<network-security-config>
    <base-config cleartextTrafficPermitted="true">
        <trust-anchors>
            <certificates src="system" overridePins="true" />
            <certificates src="user" overridePins="true" />
        </trust-anchors>
    </base-config>
</network-security-config>



2.在AndroidManifest裏的<application>標籤中,添加代碼:

android:networkSecurityConfig="@xml/network_security_config"

修改完畢後,重新運行項目,在抓包的手機上配置好代理,就可以進行https的抓包了。

特此記錄一下

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章