Android 9.0 Http 的一些问题

Android 一路走来已经10年光景了,一路革故鼎新,推出了许多优秀的功能,当然这些都离不开我们伟大的,用代码改变世界的coder们,哈哈
今天我们就来聊聊Android 9.0 对于我们开发者来说最直接的一件事情,那就是,Android 9.0 对http动手了!


Android 9.0 Http 的一些问题_第1张图片
image.png

Android 9.0 带来了自适应电池、黑暗模式(国内也叫夜间模式)、更轻松的文本选择、新的手势导航、通过Wi-FiRTT进行室内导航、多相机支持、动画增强、加强安全等等新特性,感兴趣的朋友们可以具体看看,有些东西可能咱们国产的MIUI EMUI flyme 上早都有了,但是不得不说,每次Android版本更新都是为了更安全,更好使用。
别的不说,今天来看Http 网络请求。
我接手的项目是个陈年酱香型的,一路迭代了三四年,项目目前是适配到25,适配到了7.1,以前是没问题,但是现在,vivo oppo 和小米商店对于应用版本的兼容适配都做了严格的要求:

Android 9.0 Http 的一些问题_第2张图片
image.png

也就是说,以后想要偷懒不去适配最新api是不可能的了,哈哈,好好学习吧
那么,作为一个严谨的开发者,肯定是要跟上时代的步伐的,今天上班,二话不说就是修改TargetSdkVersion 版本,由25提升到了28,重新编译后,你才能体会到什么叫做牵一发而动全身
由于androidx 和support的迁移,以及SDK的升级,项目里很多旧的api都不能使用了,一路修改,终于还是改好了,这里贴出来一部分,意思意思

Android 9.0 Http 的一些问题_第3张图片
image.png
Android 9.0 Http 的一些问题_第4张图片
image.png
Android 9.0 Http 的一些问题_第5张图片
image.png
Android 9.0 Http 的一些问题_第6张图片
image.png

辛苦改完之后,运行项目,却发现,请求不到数据了!


Android 9.0 Http 的一些问题_第7张图片
image.png

debug一看,后台报错了?


Android 9.0 Http 的一些问题_第8张图片
image.png

但是ios 明明就是可以的嘛,这这-----就尴尬了呀

说来也是神奇,脑子灵光一现,想到了Android 9.0 的http改变,Android 9.0 为了数据传输更加安全高效,故
将要求默认使用加密连接,这意味着 Android P 将禁止 App 使用所有未加密的连接,因此运行 Android P 系统的安卓设备无论是接收或者发送流量,未来都不能明码传输,这也就是意味着http 要被https替代了,其实这是可以理解的,毕竟http是有设计缺陷的,容易被窃取和劫持数据,https是更安全的,也解决了这点问题。

那么,知道了问题所在,就可以解决了

  • 将TargetSdkVersion 设置为27,低于28 就可以正常使用http,但是这种方法无异于自欺欺人
  • 在资源文件新建xml目录,新建文件


    

并且在清单文件里配置下


    
    

  • 如果感觉上面步骤麻烦,你甚至可以直接一句话,自己配置文件里加上
    android:usesCleartextTraffic="true"

总而言之就是这几种方法了, 我选择的是方法三,这里还是建议小伙伴们使用https协议请求

你可能感兴趣的:(Android 9.0 Http 的一些问题)