参考地址:学徒浅析Android——Android7.0(N)对于自定义证书和非CA机构证书的适配校验
异常
遇见的第一个异常是:
No Network Security Config specified, using platform default
解决办法:
创建一个网络安全性配置 network_security_config.xml,用来声明证书校验方式
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:networkSecurityConfig="@xml/network_security_config"
android:supportsRtl="true"
android:theme="@style/AppTheme">
network_security_config:
<?xml version="1.0" encoding="utf-8"?>
<network-security-config> //默认配置:允许明文通信
<base-config cleartextTrafficPermitted="true" />
</network-security-config>
修改代码后,再次请求:
异常2
1. Using Network Security Config from resource network_security_config debugBuild: true
修改文件 network_security_config:
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<domain-config>
<domain includeSubdomains="true">secure.example.com</domain> //这里配置域名,用你的TSP网站域名
<trust-anchors>
<certificates src="user"/>//用户自装证书
</trust-anchors>
</domain-config>
</network-security-config>
参数的含义,请参考上面的参考地址。