OkHttp请求http链接失败的问题

在 API 29 (Android Q)平台上编译,发现网络请求数据异常,四处Log,找了半天发现是OkHttp在请求网络链接的时候直接onFailure了,莫名其妙,找了半天资料,才发现原来是Android P(API 28)的锅——

Android P全面禁止了非https链接,并严格审查网站的CA证书详情参考

但是国内的很多网站都是非https的,怎么办呢?需要使用xml文件设置属性禁用掉这一设置——

在res文件夹下新建目录xml,然后创建文件network_security_config.xml(这个名字可以自定义,旨在开启http请求)

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <base-config cleartextTrafficPermitted="true" />
</network-security-config>

然后在AndroidManifest.xml文件的Application标签添加属性:

<application
        ...
        android:networkSecurityConfig="@xml/network_security_config">

问题解决。

这个方案适用于Android P以上版本其他网络请求http链接失败的情况(比如Volley)

发布了222 篇原创文章 · 获赞 558 · 访问量 38万+

猜你喜欢

转载自blog.csdn.net/CV_Jason/article/details/100043832