hongyangAndroid / wanandroid

玩Android网站 -- 努力做一个优质的Android站点
http://www.wanandroid.com/
Apache License 2.0
583 stars 55 forks source link

server端的keep-alive timeout配置的时间是多长? #290

Open GhostMoonLight opened 2 years ago

GhostMoonLight commented 2 years ago

有时候请求接口时会抛出下面的异常 java.io.IOException: unexpected end of stream on https://www.wanandroid.com/... at okhttp3.internal.http1.Http1ExchangeCodec.readResponseHeaders(Http1ExchangeCodec.kt:202) at okhttp3.internal.connection.Exchange.readResponseHeaders(Exchange.kt:106) at okhttp3.internal.http.CallServerInterceptor.intercept(CallServerInterceptor.kt:79) at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109) .... Caused by: java.io.EOFException: \n not found: limit=0 content=… at okio.RealBufferedSource.readUtf8LineStrict(RealBufferedSource.kt:332) at okhttp3.internal.http1.HeadersReader.readLine(HeadersReader.kt:29) at okhttp3.internal.http1.Http1ExchangeCodec.readResponseHeaders(Http1ExchangeCodec.kt:178)

Okhttp 连接池ConnectionPool 默认超时时间是5min, 怀疑是复用连接时,server端已经主动close该连接,导致输入流中断,进而抛出EOF 异常。 因为有重试机制,自动重试时还会正常响应结果,但是会打印出上面的日志