9.0 (API 28) Http解决

如何解决 Android 9.0(API 级别 28) Http 适配问题。目前有三种解决方案:

1. APP 改用 Https 请求(需要服务器支持)
2. targetSdkVersion 降到 27 以下(包含 27)
3. 根据 Android的网络安全性配置 自定义其网络安全设置
一、APP 改用 https 请求(需要服务器支持)

APP 将所有 Http 请求都换成 Https,这种是最彻底的解决方式,也算是正规军线路,但这个工作量可不小,还需要服务器支持,即服务器的所有 Http 请求接口也都换成 Https,否则也是无效的,在新项目或重要的项目,还是建议这么做。

二、targetSdkVersion 降到 27 以下(包含 27)
 compileSdkVersion 26
    defaultConfig {
        minSdkVersion 19
        targetSdkVersion 26
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }

targetSdkVersion 降到 27 以下(包含 27),虽然 Google play store 对新应用要求 API 28 (2019.08 开始),但国内的各大应用平台,如 BAT 基本上只要求 API 26 即可,这一政策还是去年底才生效,所以只做国内市场的话,将目标版本定为 26 是还可以持续一段时间的。

三、自定义其网络安全设置

如果项目是涉及海外市场,即一定要上 Google play store 又要使用 Http 接口,感觉很矛盾的,当然了,也是有办法处理,通过配置网络安全设置可达到一样的效果。

build.gradle 中的目标 API 设置:

compileSdkVersion 28
    defaultConfig {
        minSdkVersion 19
        targetSdkVersion 28
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }

在清单文件 AndroidManifest.xml 的 application 标签里面设置 networkSecurityConfig 属性如下:

 
   

在 res 目录下新建 xml 文件夹,创建 xml 文件包network_security_config.xml 如下:







    
        
            
        
    

在此记录问题解决方案 转载https://blog.csdn.net/weixin_45365889/article/details/99581627

你可能感兴趣的:(9.0 (API 28) Http解决)