解决了Android Studio的项目调式使用Charles抓包报unkonwn问题,废话不多说直接上操作
搭建手机的网络代理环境
电脑安装Charles:Download a Free Trial of Charles • Charles Web Debugging Proxy
安装完成后,打开charles,选择Proxy->Proxy Settings,配置Prot:8888 点击OK进行保存
安装证书,Help -- > SSL Proxying
安装完成后,导出证书,发送到手机进行安装
完成后,发送到手机安装,或者
手机访问:电脑IP:8888
或者访问:chls.pro/ssl
下载安装证书到手机,完成环境搭建后,接下就是项目
整改Android Studio项目
打开自己的Android Studio项目工程,进入AndroidManifest.xml文件,在application节点添加如下属性,启动自己的网络安全配置
android:networkSecurityConfig="@xml/network_security_config"
android:usesCleartextTraffic="true"
在res/xml目录下创建network_security_config.xml文件,写入如下内容:
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<!--内置证书-->
<domain-config>
//添加https的域名,例如https://blog.csdn.net/mrxiagc,填写log.csdn.net,有多个添加多个,不添加的则抓取不到
<domain includeSubdomains="true">要抓包的接口域名</domain>
<domain includeSubdomains="true">多个接口可以复制多个</domain>
<trust-anchors>
//注意这里没有后缀名.cer
<certificates src="@raw/charles" />
</trust-anchors>
</domain-config>
</network-security-config>
在res/xml目录下创建network_config.xml文件,写入如下内容:
<?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>
完成后,在res创建raw目录,有不用创建,没有就创建一个,把刚刚Charles导出发送到手机的证书同样复制放到该目录下,名称为charles.cer
接下来最后一步,分开所有请求的IP
Proxy > Access Control Settings ,如下图所示
添加
0.0.0.0/0
::/0
即可
这样就可以抓,你想要的接口了