Android开发报错:CLEARTEXT communication to XX not permitted by network security policy

前言

此文章将告诉大家如何解决Android开发时的报错:CLEARTEXT communication to XX not permitted by network security policy

这个错误提示表明你的应用尝试使用不加密的HTTP(即明文通信)与指定域名进行通信,但被网络安全性策略阻止了。从Android 9(API级别28)开始,默认情况下,应用程序被禁止进行明文通信,这是为了提高应用程序和用户数据的安全性,下文将提供对应的解决办法

关注wx公众号ZhillerDev,最新的移动端开发及学习资料哦~
感谢您关注,个人将快马加鞭为大家提供更优质的文章与资源!
点击前往wx观看本文章


网络请求错误解决

方案一:改为使用https请求

即日后使用okhttp或者任意一个网络请求框架进行网络请求时,都使用https(这样可以最大限度的保障安全性);


方案二:尝试降低API级别(但不推荐这样做)

目前API级别已经更新到API35,而https强制校验规则出现于API28及以上,过低的Android版本可能导致兼容性问题,所以不推荐采用此方法!


方案三:使用 network_security_config.xml 文件配置

首先在指定路径下创建文件 res/xml/network_security_config.xml,并填写以下内容,直接告诉Android不要强制检测https,并且允许所有http请求通过!

<?xml version ="1.0" encoding ="utf-8"?>
<network-security-config>
    <base-config cleartextTrafficPermitted="true" />
</network-security-config>

然后在 AndroidManifest.xml 里面全局启用此配置文件即可生效~

<application
        android:icon="@mipmap/ic_launcher"
        android:networkSecurityConfig="@xml/network_security_config">
        ...
</application>

方案四:直接在 AndroidManifest.xml 文件内关闭https强制校验

你只需在AndroidManifest.xml的application标签下添加指定配置 android:usesCleartextTraffic 即可:

<application
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:usesCleartextTraffic="true">
        ...
</application>


总结

此文章告诉大家如何解决使用okhttp或者任意一个网络请求框架在请求后端API时,因为接口时http导致请求失败的问题!

感谢您的观看~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ZhillerDev

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值