在Android中抓包常用fidder或者Charles,http可以直接抓去到请求信息,https抓取不到,如下:
?
下面介绍两种抓包方案,可以轻松的获取请求的信息。
一、使用用户证书
1、application中
android:networkSecurityConfig="@xml/network_security_config" android:usesCleartextTraffic="true"
2、res/xml
新建network_security_config:
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<debug-overrides>
<trust-anchors>
<!--信任系统的证书-->
<certificates src="system" />
<!--信任用户安装的证书-->
<certificates src="user" />
</trust-anchors>
</debug-overrides>
<base-config cleartextTrafficPermitted="true" />
</network-security-config>
3、安装证书
? ? ? ? 将证书下载到手机 ——> 打开手机设置 ——> 从存储设备安装证书 ——> 从存储设备安装证书 ——> CA证书 ——> 选择仍然安装 ——> ?存储卡路径中选择下载的xxx.cer证书 ?——> 安装完毕提示已安装
?二、使用内置证书
1、application中
同上
2、res/xml
新建network_security_config:
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<!--内置证书-->
<domain-config>
//添加https的域名,例如https://blog.csdn.net/mrxiagc,填写log.csdn.net,有多个添加多个,不添加的则抓取不到
<domain includeSubdomains="true">dc.ccrz.com.cn</domain>
<domain includeSubdomains="true">192.168.145.239</domain>
<trust-anchors>
//注意这里没有后缀名.cer
<certificates src="@raw/charles" />
</trust-anchors>
</domain-config>
</network-security-config>
3、res/raw
????????将导出的证书放在raw下,例如:charles.cer
|