首页 > 其他分享 >okhttp经常出现SocketTimeoutException

okhttp经常出现SocketTimeoutException

时间:2023-12-13 19:22:22浏览次数:18  
标签:SocketTimeoutException HTTP connectionPool connectTimeoutMillis okhttp TimeUnit 

一开始,我创建的okhttpclient的方式:

val clientBuilder = new OkHttpClient.Builder()
			.readTimeout(readTimeoutMillis, TimeUnit.MILLISECONDS)
			.writeTimeout(writeTimeoutMillis, TimeUnit.MILLISECONDS)
            .connectTimeout(connectTimeoutMillis, TimeUnit.MILLISECONDS)
            .retryOnConnectionFailure(true)

改善的方法就是加多下面两行:

.connectionPool(ConnectionPool(0, 1, TimeUnit.NANOSECONDS));
.protocols(listOf(Protocol.HTTP_1_1))

 

最后的代码如下

val clientBuilder = new OkHttpClient.Builder()
			.readTimeout(readTimeoutMillis, TimeUnit.MILLISECONDS)
			.writeTimeout(writeTimeoutMillis, TimeUnit.MILLISECONDS)
            .connectTimeout(connectTimeoutMillis, TimeUnit.MILLISECONDS)
            .retryOnConnectionFailure(true)
            .connectionPool(ConnectionPool(0, 1, TimeUnit.NANOSECONDS));
            .protocols(listOf(Protocol.HTTP_1_1))
 

 

这样的代码运行起来就没有经常出现这个异常了。

标签:SocketTimeoutException,HTTP,connectionPool,connectTimeoutMillis,okhttp,TimeUnit,
From: https://www.cnblogs.com/zhyp/p/17899753.html

相关文章

  • OKHttp的基本又核心的使用,手把手教程
    真就是手把手教你如何使用OKHTTP进行网络请求先说问题,解疑答惑**1.什么是URL什么是URI**URI:统一资源标识符URL:统一资源定位符范围来说URL<URIURL实际上也是一种资源标识符,只不过长得有点像,用来做区分2.HTTP和HTTPS有什么区别没什么区别,可能HTTPS会加密,其他好像没什么区别3.三次......
  • 解决使用 OkHttp 库出现 java.lang.NoSuchMethodError: okhttp3.internal.platform.Pl
    报错:Exceptioninthread"main"java.lang.NoSuchMethodError:okhttp3.internal.platform.Platform.log(ILjava/lang/String;Ljava/lang/Throwable;)Vatokhttp3.logging.HttpLoggingInterceptor$Logger.lambda$static$0(HttpLoggingInterceptor.java:112)......
  • jfinal框架下,连接国产达梦数据库,抛出SocketTimeoutException异常
    公司为政府开发项目,主框架选择springboot,orm框架使用jfinal。数据库为国产达梦数据库写统计类服务时,通常sql运行时间会比较久,超过10s的sql一定会报SocketTimeoutException异常 尝试使用原生jdbc创建连接,运行sql毫无问题。遂检查连接池设置。jfinal使用druid连接池网上搜索......
  • Android中OkHttp源码阅读二(责任链模式)
    AndroidOkHttp源码阅读详解一看OkHttp源码,发现OkHttp里面使用了责任链设计模式,所以才要学习责任链设计模式小节2最终会返回ResponseResponsegetResponseWithInterceptorChain()throwsIOException{//Buildafullstackofinterceptors.List<Interceptor>inte......
  • OkHttp3发送http请求
    导入依赖<!--https://mvnrepository.com/artifact/com.squareup.okhttp3/okhttp--><dependency><groupId>com.squareup.okhttp3</groupId><artifactId>okhttp</artifactId><version&......
  • 聊聊前端面试经常出现的点
    1、css选择器优先级关系!important>内联样式>ID选择器>类选择器=属性选择器=伪类选择器>标签选择器=伪元素选择器>通配符选择器!important是顶级选择器,不管写在哪甚至都可以无视JavaScript的样式设置!2、css浏览器兼容性问题的解决方法浏览器CSS样式初始化(比如:*{ma......
  • 硬件手册里经常出现的assert以及deassert 【转载】
    例如:某数据手册中写道TheaddresslineADDisassertedattimet1andisdeasserteedattimet2.接下来给出的时序图中可以看出,ADD信号在t1时变成高电平,t2时变为低电平.我们可以译为:"地址线ADD在t1时有效,在t2时无效."也有人说可以把assert译为"置位",deassert译为"清零......
  • 网络请求-Android篇(Okhttp和Retrofit)
    一.OkHttp的介绍和基本用法OkHttp是一个流行的开源Java和Android应用程序的HTTP客户端。它由SquareInc.开发,提供了一种简单高效的方式来进行应用程序中的HTTP请求。要在Java或Android项目中使用OkHttp,您需要将OkHttp依赖项添加到您的build.gradle文件中。然后,您可以创建一个......
  • OKHttp3主流程再分析
    一、概述为什么要是用OKHttp3 总结下来就两个大的方面 一、成熟稳定 OkHttp距今已有10多年的历史,在Android中大量且广泛的应用,在大、中、小项目中无处不在。可以这样说,只要是一个Android项目,网络框架的底层必定是OKHttp 二、高效 1.OkHttp的底......
  • [8月摸鱼计划] 电脑经常出现” 显示器驱动程序已停止响应“
    出现这个问题主要在看视频时或玩游戏中,屏幕突然黑屏,过了几秒后恢复正常,并在任务栏右下角提示“显示器驱动程序已停止响应,并且已成功恢复”的对话框。解决方法:一、重新安装升级显卡驱动。使用到的软件“驱动精灵”1、运行驱动精灵软件,弹出的主界面单击“驱动程序”选项2、在标准......