http unexpected end of stream

发布于:2025-08-10 ⋅ 阅读:(18) ⋅ 点赞:(0)

Android环境下,现在系统现在已经全面进入了https,但是最近有个http请求会报错。

使用httpurlconnection和volley请求,分别报错如下:

java.io.IOException: unexpected end of stream on com.android.okhttp.Address@e0faa020
    at com.android.okhttp.internal.http.Http1xStream.readResponse(Http1xStream.java:203)
    at com.android.okhttp.internal.http.Http1xStream.readResponseHeaders(Http1xStream.java:129)
    at com.android.okhttp.internal.http.HttpEngine.readNetworkResponse(HttpEngine.java:750)
    at com.android.okhttp.internal.http.HttpEngine.readResponse(HttpEngine.java:622)
    at com.android.okhttp.internal.huc.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:475)
    at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java:411)
    at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getResponseCode(HttpURLConnectionImpl.java:542)
    at org.yeshen.okhttp.HttpUtil.getIP$lambda$9(RegionRepository.kt:153)
    at org.yeshen.okhttp.HttpUtil.$r8$lambda$J24MS1RNsfmDwMHPs1_F1rIo7Fs(Unknown Source:0)
    at org.yeshen.okhttp.HttpUtil$$ExternalSyntheticLambda0.run(D8$$SyntheticClass:0)
    at org.yeshen.okhttp.HttpUtil$ThreadPoolTask.run(ThreadPool.kt:174)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1156)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:651)
    at java.lang.Thread.run(Thread.java:1119)
Caused by: java.io.EOFException: \n not found: size=0 content=...
    at com.android.okhttp.okio.RealBufferedSource.readUtf8LineStrict(RealBufferedSource.java:202)
    at com.android.okhttp.internal.http.Http1xStream.readResponse(Http1xStream.java:188)
    at com.android.okhttp.internal.http.Http1xStream.readResponseHeaders(Http1xStream.java:129) 
    at com.android.okhttp.internal.http.HttpEngine.readNetworkResponse(HttpEngine.java:750) 
    at com.android.okhttp.internal.http.HttpEngine.readResponse(HttpEngine.java:622) 
    at com.android.okhttp.internal.huc.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:475) 
    at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java:411) 
    at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getResponseCode(HttpURLConnectionImpl.java:542) 
    at org.yeshen.okhttp.HttpUtil.getIP$lambda$9(RegionRepository.kt:153) 
    at org.yeshen.okhttp.HttpUtil.$r8$lambda$J24MS1RNsfmDwMHPs1_F1rIo7Fs(Unknown Source:0) 
    at org.yeshen.okhttp.HttpUtil$$ExternalSyntheticLambda0.run(D8$$SyntheticClass:0) 
    at org.yeshen.okhttp.HttpUtil$ThreadPoolTask.run(ThreadPool.kt:174) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1156) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:651) 
    at java.lang.Thread.run(Thread.java:1119) 
com.android.volley.NoConnectionError: java.io.IOException: unexpected end of stream on http://yeshen.org/...
    at com.android.volley.toolbox.NetworkUtility.shouldRetryException(NetworkUtility.java:173)
    at com.android.volley.toolbox.BasicNetwork.performRequest(BasicNetwork.java:145)
    at com.android.volley.NetworkDispatcher.processRequest(NetworkDispatcher.java:132)
    at com.android.volley.NetworkDispatcher.processRequest(NetworkDispatcher.java:111)
    at com.android.volley.NetworkDispatcher.run(NetworkDispatcher.java:90)
Caused by: java.io.IOException: unexpected end of stream on http://yeshen.org/...
    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)
    at okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.kt:34)
    at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
    at okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.kt:95)
    at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
    at okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.kt:83)
    at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
    at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.kt:76)
    at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
    at io.sentry.okhttp.SentryOkHttpInterceptor.intercept(SentryOkHttpInterceptor.kt:116)
    at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
    at okhttp3.internal.connection.RealCall.getResponseWithInterceptorChain$okhttp(RealCall.kt:201)
    at okhttp3.internal.connection.RealCall.execute(RealCall.kt:154)
    at org.yeshen.okhttp.HttpUtil.executeRequestInternal(OkHttpStack.kt:107)
    at org.yeshen.okhttp.HttpUtil.tryRequest(OkHttpStack.kt:142)
    at org.yeshen.okhttp.HttpUtil.executeRequest(OkHttpStack.kt:173)
    at com.android.volley.toolbox.BasicNetwork.performRequest(BasicNetwork.java:104)
    ... 3 more
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)
    ... 22 more

最近定位到是使用了vpn服务,vpn服务有故障,故障点再于:
tls可以完成,但是在读取数据的时候,io被close掉了。
被close的效果,从应用层看就是 “unexpected end of stream on”


网站公告

今日签到

点亮在社区的每一天
去签到