Android使用OkHttp无法正常调用接口

转载:https://blog.csdn.net/jabony/article/details/91454473

使用高版本手机使用OkHttp框架,调用接口返回的一直都是onFaile,低版本手机可以正常调用接口。

问题原因

应用官方的说明:在 Android 6.0 中,我们取消了对 Apache HTTP 客户端的支持。

从 Android 9 开始,默认情况下该内容库已从 bootclasspath 中移除且不可用于应用。且Android P 限制了明文流量的网络请求,非加密的流量请求都会被系统禁止掉。

解决办法
首先手动引入org.apache.http.legacy.jar包置项目。并在Manifest文件中添加 。

Oktttp解决
res目录下新建xml目录,有点类似当年谷歌升级文件访问权限,在新建network_security_config.xml文件,内容如下

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

manifest文件头引用 刚才新建的xml文件

<application
        android:name=".MainApplication"
        android:allowBackup="false"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:networkSecurityConfig="@xml/network_security_config"
        android:theme="@style/AppTheme">

所以在高版本的手机尽量使用https的接口,话说现在正式项目应该都是https了吧。

发布了15 篇原创文章 · 获赞 5 · 访问量 368

猜你喜欢

转载自blog.csdn.net/weixin_44059750/article/details/104715960