由于数据量很大,服务器返回的时间比较久则会报java.net.SocketTimeoutException: timeout的超时异常

需对OkHttpClient设置超时时间

OkHttpClient client = new OkHttpClient.Builder()
        .connectTimeout(60 * 1000, TimeUnit.MILLISECONDS)//连接超时
        .readTimeout(5 * 60 * 1000, TimeUnit.MILLISECONDS)//读取超时
        .writeTimeout(5 * 60 * 1000, TimeUnit.MILLISECONDS)//写入超时
        .build()
4个超时设置
api简介生效机制
callTimeout()整个流程耗费的超时时间RealCall.execute方法,设置进入
AsyncTimeout + WatchDog实现
connectTimeout()三次握手 + SSL建立耗时socket.connect(address, connectTimeout)
readTimeout()source读取耗时source.timeout(readTimeout)
AsyncTimeout + WatchDog实现
rawSocket读取耗时rawSocket.setSoTimeout(readTimeout)
writeTimeout()sink写入耗时sink.timeout(writeTimeout)
AsyncTimeout + WatchDog实现

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐