Android9.0以上 http网络请求失败
一、前言
为保证用户数据和设备的安全,Google 针对下一代 Android 系统(Android P) 的应用程序,将要求默认使用加密连接,这意味着 Android P 将禁止 App 使用所有未加密的连接。因此运行 Android P 系统的安卓设备无论是接收或者发送流量,未来都不能明码传输,需要使用下一代(Transport Layer Security)传输层安全协议,而 Android Nougat 和 Oreo 则不受影响。
二、问题
在 Android P 使用 HttpUrlConnection 进行 http 请求会出现以下异常:
W/System.err: java.io.IOException: Cleartext HTTP traffic to **** not permitted
java.net.UnknownServiceException: CLEARTEXT communication to **** not permitted by network security policy
三、解决方案
APP 改用 https 请求。条件允许的话,建议使用,以增强安全性。
Android 编译的 targetSdkVersion 改为27以下。因为是高版本才出现的,那可以降维处理。
在 AnroidManifest.xml 中的 application 添加设置项:
<application android:usesCleartextTraffic=“true”>添加网络安全配置。
在 res 的 xml 目录下,新建一个 network_config.xml 文件(名称随便取):
<?xml version="1.0" encoding="utf-8"?>
<network-security-config><base-config cleartextTrafficPermitted="true" />
</network-security-config>
然后在 AnroidManifest.xml 中的 application 添加指向该文件的设置项:
<application
...
android:networkSecurityConfig="@xml/network_config"
...
/>
5.
非Activity-Context启动Activity,现在强制执行 FLAG_ACTIVITY_NEW_TASK 要求,Apache HTTP 客户端弃用,影响采用非标准 ClassLoader 的应用。
在项目中用到了 Apache HTTP client 的相关类,就会抛出找不到这些类的错误。这是因为官方已经在 Android P 的启动类加载器中将其移除,如果仍然需要使用 Apache HTTP client.
Caused by: java.lang.ClassNotFoundException: Didn't find class "org.apache.http.protocol.BasicHttpContext" on path: DexPathList”
在 AnroidManifest.xml 中的 application 添加:
<uses-libraryandroid:name="org.apache.http.legacy"android:required="false" />
Android9.0以上 http网络请求失败相关推荐
- Android 9.0/P(android p指安卓9.0版本) okhttp3网络请求出错
已经在AndroidManifest.xml申请网络权限,在8.0以下的系统中网络访问正常,但是9.0中出现网络请求失败 Android 9.0的网络请求失败如下图: 出现这个错误的原因是:从Andr ...
- (转)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 ...
- 今天升级Xcode 7.0 bata发现网络访问失败。
今天升级Xcode 7.0 bata发现网络访问失败. 输出错误信息 The resource could not be loaded because the App Transport Securi ...
- RTSP安防网络摄像头/海康大华硬盘录像机/NVR网页无插件低延时播放流媒体服务器EasyNVR页面显示网络请求失败问题
进入移动互联网时代以来,企业微信公众号已成为除官网以外非常重要的宣传渠道,当3.2亿直播用户与9亿微信用户的势能累加,在微信上开启直播已成为越来越多企业的必然选择. 青犀团队研发的EasyNVR核心在 ...
- Hikvison对接iSecure Center时获取Appkey和Secert、不显示API网关、预览时提示网络请求失败
场景 SpringBoot+Vue+iSecure Center(海康综合安防管理平台)实现视频预览: SpringBoot+Vue+iSecure Center(海康综合安防管理平台)实现视频预览_ ...
- iphone/苹果手机 微信小程序 真机调试 网络不通 网络请求失败
问题 问题:iphone/苹果手机 微信小程序 真机调试 网络请求失败,可以确定的是,真机和开发工具所在电脑肯定是在一个网段的,把蜂窝数据都关了,只保留了WIFI,还是请求不通, 解决 最终参考 微信 ...
最新文章
- 结构控制Switch Case
- ObjectOutputStream 和 ObjectInputStream的使用
- Spring Cloud Alibaba迁移指南2:一行代码从Hystrix迁移到Sentinel
- 方式四:修改模块导入段来拦截API
- 动手造轮子:实现一个简单的 EventBus
- java图形包_java流布局图形包
- React ref的转发
- 申通快递:1月快递服务业务收入25.65亿元 同比增长21.27%
- php聊天机器人源码,简单聊天机器人源码
- L73.linux命令每日一练 -- 第十章 Linux网络管理命令 -- dig和host
- 台式计算机关机后自行重启,台式电脑点关机后又自动重启怎么处理
- 我的人生就是一次次世界杯串起来的
- MongoDB一篇从入门到实战
- 北京哪里可以买到含羞草啊?或者种子也行
- Mac-Charles
- Python-使用方法修改字符串的大小写
- 2021-07-28 产品开发过程纪实-家用洗菜-智商税收割
- android 手机屏幕密度等级和屏幕逻辑尺寸
- 机器自动翻译古文拼音 - 十大宋词 - 江城子·乙卯正月二十日夜记梦 苏轼
- QQ音乐Android端120万行代码,编译耗时是怎样优化的,凭借这份《数据结构与算法》核心文档
热门文章
- explain ref_什么是MySQL的执行计划(Explain关键字)?
- MySQL按时间日期查询表数据做数据统计
- Windows启动MYSQL的两种方式
- 如何做一个基于微信共享停车位小程序系统毕业设计毕设作品
- 支付宝和手机QQ春节红包热战正酣,百度终于出手了
- 如何成为一名自由职业的翻译
- python中elif语句_Python学习笔记控制流语句之elif语句
- 新手学编程必会的100个代码_初学编程100个代码
- 南开20春学期大学计算机基础在线作业,【南开】20春学期《大学计算机基础》在线作业-复习资料附答案1...
- 修改idea窗体背景颜色