Android9.0 http网络请求失败
解决方法
1.使用HTTPS
2.targetSdkVersion 降到27以下
3.设置isCleartextTrafficPermitted()
为false
最近做的项目,在8.0版本以下都是可以正常使用,突然接收到反馈说软件在9.0无法使用,连登陆都无法登陆。而刚好我的手机也刚升级到9.0系统,就进行了测试,发现问题和查找问题,得到以下错误原因和解决方案:
1、用Retrofit请求网络报这个错
CLEARTEXT communication to host not permitted by network
由于 Android P 限制了明文流量的网络请求,非加密的流量请求都会被系统禁止掉。
如果当前应用的请求是 htttp 请求,而非 https ,这样系统就会禁止当前应用进行该请求,如果 WebView 的 url 用 http 协议,同样会出现加载失败,无法显示webview的内容,https 则不受影响。
为此,OkHttp3 做了检查,所以如果使用了明文流量,默认情况下,在 Android P 版本 OkHttp3 就抛出异常:
"CLEARTEXT communication to " + host + " not permitted by network security policy
这是因为在更新了9.0系统之后,所有应用都使用HTTPS
这是对Android安全用户的肯定。AndroidP上的所有应用程序默认都使用HTTPS。
解决方案:
一、APP改用https请求
这种方式需要接口去协调,把请求域名改为https。
二、targetSdkVersion 降到27以下
三、在 res 下新增一个 xml 目录,然后创建一个名为:network_security_config.xml 文件(名字自定) ,内容如下,大概意思就是允许开启http请求。
<?xml version="1.0" encoding="utf-8"?>
<!--Android 9.0 https请求适配-->
<network-security-config><base-config cleartextTrafficPermitted="true" />
</network-security-config>
在AndroidManifest.xml
里面的application
标签下配置:
android:networkSecurityConfig="@xml/network_security_config"
到此就解决了Android9.0无法请求接口获取数据的错误了。
转载:https://blog.csdn.net/freak_csh/article/details/86100031
https://www.jianshu.com/p/7e4eed792b7c
Android9.0 http网络请求失败相关推荐
- Android9.0 http网络请求失败问题分析与解决方案
最近做的项目,在8.0版本以下都是可以正常使用,突然接收到反馈说软件在9.0无法使用,连登陆都无法登陆.而刚好我的手机也刚升级到9.0系统,就进行了测试,发现问题和查找问题,得到以下错误原因和解决方案 ...
- Android9.0 http网络请求失败解决方法
前言:最近在做一个OCR,调用的是百度OCR的接口,文字识别出来之后想加一个翻译的功能,还是使用的百度翻译.(不管外界如何唱衰百度,个人感觉百度这方面做的还是可以的).由于之前请求网络用的okhttp ...
- Android9.0 http网络请求失败问题的处理
目录 处理方法(任意一种): APP改用https请求 targetSdkVersion 降到27以下 配置network-security-config(推荐) 原因 出错案例 处理方法(任意一种) ...
- Android异常-android5.0以上网络请求失败-retry error, curr request is null
异常描述: 使用Xutils框架做了登录请求,5.0以下和部分5.0android能够正常登录,大部分android5.0的手机发现一直显示正在加载,调试发现,输出错误信息 retry error,c ...
- 网络请求失败CLEARTEXT communication to “ “ not permitted by network security policy
ok http3 + retrofit 网络请求,在Android9.0手机上请求失败,报错:CLEARTEXT communication to " " not permitte ...
- (转)json数据解析异常而导致网络请求失败的解决办法(其一)
原文出处 https://www.jianshu.com/p/d6bd6bd5fce3 参考文章 问题概述 笔者在开发过程中临时遇到一个本来仅有web端的项目临时增加Android端,导致后端在出接口 ...
- android json解析异常,json数据解析异常而导致网络请求失败的解决办法(其一)
问题概述 笔者在开发过程中临时遇到一个本来仅有web端的项目临时增加Android端,导致后端在出接口时并未考虑Android端的json数据的解析,导致接口是这样的.... 正确请求 { " ...
- android——rxjava异步Consumer类似promise、重试机制、网络请求失败重试、合并两个异步都完成才往下运行、实现数据缓存优先加载
1.rxjava异步Consumer 导入fxjava包: implementation 'io.reactivex.rxjava3:rxjava:3.0.6' // rxBinding已经依赖了rx ...
- JS基础之网络请求失败自动重试
当我们在进行网络请求的时候,有时候由于信号不好等因素导致网络请求失败,这时我们通常就直接返回了,这不够优雅,更好的处理方式时能进行自动重试. 假设我们的网络请求代码如下: // 伪代码 functio ...
最新文章
- ubuntu 10.04 安装arm交叉编译器
- 例题:青歌赛打分程序。去掉两个最高分,去掉两个最低分,再算平均分。主要学习数组和冒泡排序,什么情况下要定义数组...
- NLTK与NLP原理及基础
- HackerRank Super Six Substrings dp
- vue 中的el表达式_Vue中vue.filter()的使用方法介绍(过滤)
- VS 2013 Preview 自定义 SharePoint 2013 列表 之 两个Bug
- IIS -2147467259 (0x80004005)
- linux+vim+动不了,linux的vim按了ctrl+s之后假死的解决办法
- 计算机科学实验班高考线,北京工业大学计算机科学与技术(实验班)专业2015年在北京理科高考录取最低分数线...
- java语言函数存储在哪个包_java专项联系题
- 使用JDBC增删改查
- display:inline-block 间隙
- 转换php时间戳,如何实现转换php时间戳
- Altium Designer10.1051图文安装教程
- 【转载】printf打印是字体和背景带颜色的输出的方法
- 下一代微型计算机,「简讯」GTX 1650完整规格曝光;任天堂推迟下一代Switch上市时间…...
- WC-Write Combining 合并写技术
- NVIDIA英伟达又发布了哪些黑科技?
- 彻底关闭Win10内置的Windows Defender杀毒软件
- python代码示例大全 下载-python基础代码大全
热门文章
- 基于firefly rk3399刷写ubuntu18.04系统
- Window7系统无线网络连接不可用?
- Python基础:面向对象基础 (一) 类及其属性和魔法方法
- MySQL 学习笔记-第三篇-索引、存储过程和函数、视图、触发器
- 博士申请 | 美国东北大学徐啸林老师招收机器学习安全方向全奖博士生
- 最近很火的农民工,每一句话都在提醒舒适区的我们
- 三合H5交友盲盒系统|免授权|分销代理|APP盲盒源码|脱单盲盒
- 榆熙电商:哪些产品可以用来做预售处理?
- a豆独立的重要性 浅析华硕市场战略布局
- 开咖啡店最重要的是什么?这些理论知识你需要掌握