关于OkHttp连接错误解决办法

关于OkHttp的使用可以参考
OkHttp基本使用教程连接

一.线程问题

主线程不能设置网络链接,可以新建线程添加网络链接

new Thread(new Runnable() {
      @Override
       public void run() {
           //实例
       }
}).start();

二.网络权限问题

AndroidManifest.xml文件中添加一下网络权限,和网络状态权限

<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

如果添加上述代码段还是出现以下错误

java.net.SocketException: socket failed: EPERM (Operation not permitted)

卸载在模拟器里面的程序,重新安装,不需要删除模拟器。
原因可能是:一开始网络请求时我没有赋予网络权限,我重新给程序赋予权限时我并没有卸载程序,只是重新编译,系统并没有获取到配置文件中的权限,因此需要卸载重新安装。

三.明文流量问题

错误提示:

java.net.UnknownServiceException: CLEARTEXT communication ** not permitted by network security policy

解决办法
AndroidManifest.xml文件中application代码段下添加,可以使用明文连接

android:usesCleartextTraffic="true"

这里意思是应用程序是否打算使用明文网络流量,例如明文HTTP。目标API级别为27或更低的应用程序的默认值为“ true”。面向API级别28或更高级别的应用默认为“ false”

原因:为保证用户数据和设备的安全,Google针对下一代 Android 系统(Android P) 的应用程序,将要求默认使用加密连接,这意味着 Android P 将禁止 App 使用所有未加密的连接,因此运行 Android P 系统的安卓设备无论是接收或者发送流量,未来都不能明码传输。

感谢解决方案https://blog.csdn.net/MRYZJ/article/details/101780180

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值