Google为了推进网络请求时数据的安全性,在Android 9.0系统默认都不能用http协议,而要使用https协议,提高数据传输的安全性。
直接使用http协议传输数据,会报一下错误:
java.io.IOException: Cleartext HTTP traffic to **** not permitted
解决的办法有以下几种
1.弃用http,改用http,从根源解决问题
2.把targetSdkVersion改成9.0以下版本,即28之前即可
3.在项目中修改相关配置
创建文件network_security_config.xml,放在res/xml下
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<base-config cleartextTrafficPermitted="true">
<trust-anchors>
<certificates src="system" />
</trust-anchors>
</base-config>
</network-security-config>
在清单文件application节点下配置networkSecurityConfig属性
android:networkSecurityConfig="@xml/network_security_config"