安卓 OkHttp请求失败的原因及解决
程序员文章站
2022-04-15 18:44:49
...
问题: 在 API 30 (Android 10.0+R)平台上编译,使用真机调试,OkHttp在请求网络链接的时候直接onFailure了,但是使用虚拟机却可以请求成功。
原因: Android P以及Android R全面禁止了非https链接,并严格审查网站的CA证书。
解决方法:
- 在res下新建xml目录,在该目录下创建文件network_security_config.xml
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<base-config cleartextTrafficPermitted="true" />
</network-security-config>
- 在AndroidManifest.xml中加上以下内容:
<uses-feature
android:name="org.apache.http.legacy"
android:required="false" />
并在<application标签中加上一行:
<application
……
android:networkSecurityConfig = "@xml/network_security_config">