Android 9.0网络请求失败

在使用Android P调试网络请求的时候,报了一个错误

W/System.err: java.io.IOException: Cleartext HTTP traffic to **** not permitted

其实还有一些网络请求,比如使用图片加载框架加载网络图片的时候也会失败,而且还不会报错

默认情况下启用网络传输层安全协议 (TLS)

如果您的应用以 Android 9 或更高版本为目标平台,则默认情况下 isCleartextTrafficPermitted() 函数返回 false。 如果您的应用需要为特定域名启用明文,您必须在应用的网络安全性配置中针对这些域名将 cleartextTrafficPermitted 显式设置为 true

解决方法

1.使用HTTPS
2.targetSdkVersion 降到27以下
3.设置isCleartextTrafficPermitted()为true

设置isCleartextTrafficPermitted

在/res文件夹下面创建/xml文件夹,在里面创建一个xml文件,名字叫network-security-config

<?xml version="1.0" encoding="utf-8"?>
<network-security-config xmlns:tools="http://schemas.android.com/tools"
    tools:ignore="MissingDefaultResource">

    <base-config cleartextTrafficPermitted="true" />

</network-security-config>

在AndroidManifest.xml里面的application标签下配置:

android:networkSecurityConfig="@xml/network_security_config"

更多Android P的变化可以查看官方文档:https://developer.android.com/about/versions/pie/android-9.0?hl=zh-cn

最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容