好的http。异常 java.io.IOException:连接上的流意外结束

Ale*_*rin 6 android ioexception okhttp

我遇到了一个问题,大约三分之一的OkHttpClient newCall(request).execute();服务器请求因以下异常而失败:

Exception java.io.IOException: unexpected end of stream on Connection{[REDACTED_DOMAIN_NAME]:80, proxy=DIRECT@ hostAddress=[REDACTED_DOMAIN_NAME]/[REDACTED_IP_ADDRESS] cipherSuite=none protocol=http/1.1}
Run Code Online (Sandbox Code Playgroud)

我禁用了证书验证。这种行为的原因可能是什么?

小智 0

OkHttpClient默认的请求协议是HTTP2.0。某些 Web 服务需要 HTTP1.1 请求。

将协议(listOf(Protocol.HTTP_1_1)) 行添加到您的OkHttpClient。

例子;

val okHttpClient = OkHttpClient.Builder()
                    .protocols(listOf(Protocol.HTTP_1_1))
                    .readTimeout(40, TimeUnit.SECONDS)
                    .connectTimeout(40, TimeUnit.SECONDS)
                    .addInterceptor(loggingInterceptor)
                    .addInterceptor(authInterceptor)
                    .retryOnConnectionFailure(true)
                    .build()
Run Code Online (Sandbox Code Playgroud)