安卓 OkHttp请求失败的原因及解决

问题: 在 API 30 (Android 10.0+R)平台上编译,使用真机调试,OkHttp在请求网络链接的时候直接onFailure了,但是使用虚拟机却可以请求成功。


原因: Android P以及Android R全面禁止了非https链接,并严格审查网站的CA证书。


解决方法:

  1. 在res下新建xml目录,在该目录下创建文件network_security_config.xml
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <base-config cleartextTrafficPermitted="true" />
</network-security-config>
  1. 在AndroidManifest.xml中加上以下内容:
<uses-feature
       android:name="org.apache.http.legacy"
       android:required="false" />

并在<application标签中加上一行:

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

猜你喜欢

转载自blog.csdn.net/m0_46467531/article/details/112894315
今日推荐