抓取 https 的數據
如果使用的是其他手機靡努,那么按照常用方法抓就行了
1坪圾、電腦 charles 安裝證書,設置證書「信任」為 始終信任
颤难,啟用 SSL 代理神年,并配置代理的網段~
2、手機配置好跟電腦一樣的網段
行嗤,然后 端口配置成8888
已日,然后訪問 charles 提供的網址,下載證書栅屏。
網址大致是chls.pro/ssl
,不過還是要以自己看到 charles 的提示為準
這里特別要注意飘千,千萬不要使用小米自己的瀏覽器
下載這個證書,而是要使用其他瀏覽器栈雳,這樣下載下來的證書才是 .pem
后綴的护奈,這里要特別注意
而且也不要在電腦端去下載手機端的這個證書,否則也會影響效果(只能使用指定證書的方法抓取數據)
3哥纫、手機霉旗、電腦都安裝好證書之后,還差最后最關鍵的一步:進行網絡安全配置
在 android 項目中的 res>xml 下新建一個 xml 文件,文件名隨意厌秒,如果沒有xml 文件夾读拆,自己新建一個
比如我的文件名是:network_security_config.xml
然后里面配置上如下內容
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<!-- 支持 Android 9.0 以上使用部分域名時使用 http -->
<domain-config cleartextTrafficPermitted="true">
<domain includeSubdomains="true">host地址(改成自己項目的)</domain>
</domain-config>
<!-- 支持 Android 7.0 以上調試時,信任 Charles 和 Fiddler 等用戶信任的證書 -->
<debug-overrides>
<trust-anchors>
<certificates src="system" />
<certificates src="user" />
</trust-anchors>
</debug-overrides>
</network-security-config>
其中只有 host地址(改成自己項目的)
這個部分改成自己的 主機地址鸵闪,其余地方不變檐晕,這個配置的意思就是 允許所有 調試 版本的app進行 https 的抓取
也就是說正式版本是抓不到的哦 ,如果想要抓正式版本蚌讼,可以修改成
<?xml version="1.0" encoding="utf-8"?>
<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>
這個就一點不需要改了辟灰,不過不建議這樣寫哦,以免發(fā)版時忘記注釋篡石,倒置自己的數據被抓取到了芥喇。
然后,將此文件的路徑配置到清單文件的 Application 標簽中即可
<?xml version="1.0" encoding="utf-8"?>
<manifest ... >
<application android:networkSecurityConfig="@xml/network_security_config"
... >
...
</application>
</manifest>