Android报错CLEARTEXT communication to xx not permitted by network security policy

Android报错CLEARTEXT communication to xx not permitted by network security policy

做Android开发的同学们在请求后台数据的时候,肯定会遇到这种问题:前台提示请求超时,后台也没有接收到前台发送过去的请求,这是怎么回事?

首先我们要检查一下Android配置中有没有申请网络请求权限,打开AndroidManifest.xml文件,在manifest中添加


    <uses-permission android:name="android.permission.INTERNET"/>

Android报错CLEARTEXT communication to xx not permitted by network security policy_第1张图片

来申请网络请求权限

接下来我们还要检查一下请求url以及参数是否与后台相对应
Android报错CLEARTEXT communication to xx not permitted by network security policy_第2张图片

再次启动项目,后台还是没有接收到请求,这个时候我们就可以去看看console有没有报错提示。
CLEARTEXT communication to xx not permitted by network security policy
在这里插入图片描述

这是由于2018年发布的Android P限制了非加密的流量请求

解决这个问题又两种方法

  1. 将所有的HTTP请求全部都改为HTTPS
  2. 在res的xml目录创建一个network_config.xml文件
    Android报错CLEARTEXT communication to xx not permitted by network security policy_第3张图片

<network-security-config>
    <base-config cleartextTrafficPermitted="true" />
network-security-config>

在文件中设置cleartextTrafficPermitted为开启状态

然后在AndroidManifest.xml中配置cleartextTrafficPermitted

<application
        android:name=".MyApplication"
        android:allowBackup="true"
        android:icon="@drawable/patrick_star"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"

        android:networkSecurityConfig="@xml/network_config"

        android:theme="@style/AppTheme">

你可能感兴趣的:(专题技术文献)