为保证用户数据和设备的安全,Google针对 Android P版本以后的应用程序,将要求默认使用加密连接,这意味着 Android P 将禁止 App 使用所有未加密的连接,因此运行 Android P 系统的安卓设备无论是接收或者发送流量,都不能进行明码传输,需要使用新一代传输层安全协议(Transport Layer Security),而 Android P以下版本不受影响。
因此在Android P以上版本使用未加密的Http请求会提示net::ERR_CLEARTEXT_NOT_PERMITTED。
比如WebView加载Http链接
加载Http链接图片
所以在Android P以上的系统,如果应用使用的是非加密的明文流量的http请求,则会导致该请求无法成功,而https请求则不会受影响。
针对这个问题,我看了一下共有三种解决方法。
1)使用Https请求替换Http请求。既然官方都说了用Https更安全,那就替换成Https。
2)将targetSdkVersion降到27以下。曲线救国,既然从28开始不支持Http,那么我就用28以下的版本。
3)更改网络安全配置
第三种也是网上最多的解决方案,就是在清单文件中做一下配置,使用未加密信息传输。
<application
...
android:usesCleartextTraffic="true"
...>
...
</application>
以上三种方案都可以解决Android P版本以上的Http请求问题,喜欢那种方案就看自己啦~
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- oldu.cn 版权所有 浙ICP备2024123271号-1
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务