随记:OkHttp在请求网络链接的时候直接onFailure

随记:OkHttp在请求网络链接的时候直接onFailure

原因:

Android P(API 28)以上版本全面禁止了非https链接,并严格审查网站的CA证书

解决:

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

两种方法:

<network-security-config>
	<!--第一种-->
    <domain-config cleartextTrafficPermitted="true">
      <!--允许以下网址使用非安全的连接-->
        <domain includeSubdomains="true">example.com</domain>
    </domain-config>
</network-security-config>
<network-security-config>
	<!--第二种-->
	<!--默认允许所有网址使用非安全连接-->
    <base-config cleartextTrafficPermitted="true" />
</network_security_config>

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

   android:networkSecurityConfig="@xml/network_security_config"

运行后,会报错:

java.lang.RuntimeException: Failed to parse XML configuration from network_security_config

懵圈。。。
想到请求失败的原因,我就直接在http后面加了s,竟然侥幸成功。

除此之外,有兴趣的可以看看Android P的新特性,会有意外惊喜哦。

本人木兰,以上随手记的,有误的地方请多多指点

你可能感兴趣的:(随记:OkHttp在请求网络链接的时候直接onFailure)