Android9.0发送http请求报Network request faild

从AndroidP开始,系统默认禁止应用使用未加密的HTTP连接,强制应用采用HTTPS以提升数据传输安全。对于需要使用明文流量的应用,可通过配置network_security_config.xml文件来允许明文交通。

官网文档:

Android 致力于保护用户,他们的设备和数据安全。我们保证数据安全的方法之一是保护所有进入或离开 Android 设备的数据在传输中使用传输层安全性(TLS)。正如我们在 Android P 开发人员预览中所宣布的那样,我们通过阻止针对 Android P 的应用程序默认允许未加密的连接来进一步改进这些保护。
这是我们多年来为更好地保护 Android 用户而做出的各种更改。为了防止意外的未加密连接,我们 android:usesCleartextTraffic 在 Android Marshmallow 中引入了 manifest 属性。在 Android Nougat 中,我们通过创建 Network Security Config 功能扩展了该属性,该功能允许应用程序指示他们不打算在没有加密的情况下发送网络流量。在 Android Nougat 和 Oreo 中,我们仍然允许明文连接。


看来以后都要用 https 了,在 Android P 系统的设备上,如果应用使用的是非加密的明文流量的 http 网络请求,则会导致该应用无法进行网络请求,https 则不会受影响,同样地,如果应用嵌套了 webview,webview 也只能使用 https 请求。
目前找到的解决办法:

  • 1:改用 https
  • 2:添加配置文件
    • 2.1:在 res 的 XML 目录下,新建一个 XML 文件(名称自定义,如:network_security_config.xml),
      内容如下:
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <base-config cleartextTrafficPermitted="true" />
</network-security-config>

image.png

    • 2.2:在 AndroidManifest.xml 里添加
android:networkSecurityConfig="@xml/network_security_config"

image.png

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值