安卓P网络请求中CLEARTEXT communication not supported问题解决

from–https://www.jianshu.com/p/798037d2b12c

安卓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"?>

    

或者是这样:

<?xml version="1.0" encoding="utf-8"?>

    <domain-config cleartextTrafficPermitted="true">

        <domain includeSubdomains="true">Your URL(ex: 127.0.0.1。填写你的URL的host)

    

然后再清单文件中添加这个配置:

android:networkSecurityConfig="@xml/network_security_config"

这里的配置就是刚才让你创建的xml文件。这是第一种方式

第二种就是直接在清单文件添加这个属性:

清单文件配置
就完成了。

最后提醒一下各位,不要忘了添加权限。

<uses-permission android:name="android.permission.INTERNET" />
上一篇
下一篇