Android 9.0 http请求解决方案

Android 9.0 上的所有应用程序默认都使用https。

使用HttpUrlConnection进行http请求会出现以下异常:

W/System.err: java.io.IOException: Cleartext HTTP traffic to ** not permitted.

使用OKHttp请求出现:

W/System.err: java.net.UnknownServiceException: CLEARTEXT communication to ** not permitted by network security policy.

有以下三种解决方案:

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

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



    
        
            
        
    

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



你可能感兴趣的:(Android 9.0 http请求解决方案)