安卓P网络请求中CLEARTEXT communication not supported问题解决
OKhttp在高版本请求过程中会出现CLEARTEXT communication not supported问题。
其实这个问题非常简单。
这个问题是由于安卓9开始,不容许未加密就进行网络数据交互。
所以使用http的朋友,会遇到这个问题。
解决这个问题的方法很多。
第一,跟公司讲,把APP请求的http改用https请求。后台应该不会屌你。
第二,把你的targetSdkVersion 降到27以下。对这个问题在高版本的targetSdkVersion 和高版本安卓机才会出现。所以更改一下。但是不能从根本上解决问题。
第三,更改网络安全配置。
有2种方式。
第一:
在res文件夹下创建一个xml文件夹,然后创建一个network_security_config.xml文件(名字随便取。这里是告诉你网络安全配置)
这个文件的内容如下:
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<base-config cleartextTrafficPermitted="true" />
</network-security-config>
或者是这样:
<?xml version="1.0" encoding="utf-8"?><network-security-config>
<domain-config cleartextTrafficPermitted="true">
<domain includeSubdomains="true">Your URL(ex: 127.0.0.1。填写你的URL的host)</domain>
</domain-config></network-security-config>
然后再清单文件中添加这个配置:
android:networkSecurityConfig="@xml/network_security_config"
这里的配置就是刚才让你创建的xml文件。这是第一种方式
第二种就是直接在清单文件添加这个属性:
就完成了。
最后提醒一下各位,不要忘了添加权限。
<uses-permission android:name="android.permission.INTERNET" />