最近,測試小哥哥提出公司的部分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的抓包了。
特此記錄一下