最近做的项目,在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>

然后在APP的AndroidManifest.xml文件下的application标签增加以下属性

android:networkSecurityConfig="@xml/network_security_config"

如图所示:

到此就解决了Android9.0无法请求接口获取数据的错误了。

基于有大兄弟说第三个方案无法使用的问题,我贴下我的demo,这个demo里面是我封装的http请求,也使用了这个方案,如果觉得这个网络请求框架适合的话,也可以使用使用,不过现在还不够完善,还在一步一步完善中,博文使用说明也还在书写中,下面贴下github地址:

https://github.com/freakcsh/HttpManage

顺便附带上后台的demo地址,这个也是我自己写的,和后台调试接口太麻烦,还不如自己写一个,有需要的可以拿去测试测试,可以在本地运行,ip是自己本机的ip,端口号是9999.可自己修改

https://github.com/freakcsh/httphelper

Android9.0 http网络请求失败问题分析与解决方案相关推荐

  1. Android9.0 http网络请求失败

    解决方法 1.使用HTTPS 2.targetSdkVersion 降到27以下 3.设置isCleartextTrafficPermitted()为false 最近做的项目,在8.0版本以下都是可以 ...

  2. Android9.0 http网络请求失败解决方法

    前言:最近在做一个OCR,调用的是百度OCR的接口,文字识别出来之后想加一个翻译的功能,还是使用的百度翻译.(不管外界如何唱衰百度,个人感觉百度这方面做的还是可以的).由于之前请求网络用的okhttp ...

  3. Android9.0 http网络请求失败问题的处理

    目录 处理方法(任意一种): APP改用https请求 targetSdkVersion 降到27以下 配置network-security-config(推荐) 原因 出错案例 处理方法(任意一种) ...

  4. 微信小程序常见网络请求失败问题总结及解决方案

    微信小程序常见网络请求失败问题总结及解决方案 微信开发者工具中未勾选不校验合法域名设置 未勾选这个设置在任何环境下发送http网络请求会失败 发送的是https请求,但网络请求依旧是失败 需要到官方的 ...

  5. Android异常-android5.0以上网络请求失败-retry error, curr request is null

    异常描述: 使用Xutils框架做了登录请求,5.0以下和部分5.0android能够正常登录,大部分android5.0的手机发现一直显示正在加载,调试发现,输出错误信息 retry error,c ...

  6. 网络请求失败CLEARTEXT communication to “ “ not permitted by network security policy

    ok http3 + retrofit 网络请求,在Android9.0手机上请求失败,报错:CLEARTEXT communication to " " not permitte ...

  7. (转)json数据解析异常而导致网络请求失败的解决办法(其一)

    原文出处 https://www.jianshu.com/p/d6bd6bd5fce3 参考文章 问题概述 笔者在开发过程中临时遇到一个本来仅有web端的项目临时增加Android端,导致后端在出接口 ...

  8. android json解析异常,json数据解析异常而导致网络请求失败的解决办法(其一)

    问题概述 笔者在开发过程中临时遇到一个本来仅有web端的项目临时增加Android端,导致后端在出接口时并未考虑Android端的json数据的解析,导致接口是这样的.... 正确请求 { " ...

  9. RTSP安防网络摄像头/海康大华硬盘录像机/NVR网页无插件低延时播放流媒体服务器EasyNVR页面显示网络请求失败问题

    进入移动互联网时代以来,企业微信公众号已成为除官网以外非常重要的宣传渠道,当3.2亿直播用户与9亿微信用户的势能累加,在微信上开启直播已成为越来越多企业的必然选择. 青犀团队研发的EasyNVR核心在 ...

最新文章

  1. /etc/hosts/中HOSTNAME错误导致lsnrctl启动错误
  2. SharePoint 2010 与 SQL Server 2012 报表服务集成
  3. 2016c语言模拟试卷一,2016年9月计算机二级C语言考试预测试题及答案(4)
  4. 【深度学习】10个算法从业人员必须知道的TensorFlow技巧
  5. Lua 语言 快速入门
  6. TexBox.AutoCompleteSource
  7. 在 Dubbo3.0 上服务治理的实践
  8. Spring Boot 之事件(Event)
  9. 新兴IT企业特斯拉(四)——Model 3
  10. 自然语言处理的学习心得
  11. Xcode 模拟器Simulator手动下载(iOS 8 - iOS 12)
  12. java实现与图灵机器人聊天_调用图灵机器人API实现简单聊天
  13. ui界面设计基本原则
  14. 网易楚留香获取服务器信息,楚留香手游生活采集物有哪些 获取攻略
  15. 美国贝勒大学计算机科学专业怎么样,美国贝勒大学怎么样
  16. MySQL ('root'@'%') does not exist的问题
  17. 《Python机器学习——预测分析核心算法》——2.5 用实数值属性预测实数值目标:评估红酒口感...
  18. 她他它的用法?收藏给小孩看吧
  19. 微医网爬虫(一) java实现
  20. numpy 学习汇总5-数组运算 tcy

热门文章

  1. synopsys破解教程具体操作
  2. 从零开始安装Intellij Idea14
  3. 宋晓丽20190912-3 词频统计
  4. html 没有单位的数据,计算机中最小的数据单位是什么
  5. windows7声卡驱动修复压缩包
  6. 太赫兹时域光谱与频域光谱
  7. GB28181流媒体服务LiveGBS实现web浏览器直接与摄像头语音对讲的配置介绍
  8. 服务器安全维护的七大方案
  9. ctfshow(vip限免题)
  10. 盘符被修改为*的恢复方法