前言
为保证用户数据和设备的安全,Google针对下一代 Android(9.0 API 28 ) 系统(Android P) 的应用程序,将要求默认使用加密连接(HTTPS请求)。
很早就适配过Android 9.0的项目,这次就在github上找了一些开源项目看看,运行的时候有些报错,把它改好了,然后把项目改成API 28,也就是Android 9.0以上的时候,发现http请求数据直接失败,没细想是因为http请求的问题,所以弄了半个多小时,首先看了一下项目各种配置都没问题,然而,有一项配置却没注意到。
1.在res下创建xml文件夹并添加network_security_config.xml文件。
network_security_config.xml文件的所有代码
<?xml version="1.0" encoding="utf-8"?>
<network-security-config xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools">
<base-config
cleartextTrafficPermitted="true"
tools:ignore="InsecureBaseConfiguration" />
</network-security-config>
2.在清单文件的application标签下配置这个文件。
android:networkSecurityConfig="@xml/network_security_config"
添加完了这两种配置一般http请求数据都能出来了,如果还没出来,请看步骤3。
3.在清单文件中添加允许访问网络权限。
<!-- 允许访问网络的权限 -->
<uses-permission android:name="android.permission.INTERNET" />
如对此有疑问,请联系qq1164688204。
推荐Android开源项目
项目功能介绍:RxJava2和Retrofit2项目,添加自动管理token功能,添加RxJava2生命周期管理,使用App架构设计是MVP模式和MVVM模式,同时使用组件化,部分代码使用Kotlin,此项目持续维护中。