随记: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的新特性,会有意外惊喜哦。
本人木兰,以上随手记的,有误的地方请多多指点