解决okHttp使用https抛出stream was reset: PROTOCOL_ERROR的问题

Posted 旋风小伙

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了解决okHttp使用https抛出stream was reset: PROTOCOL_ERROR的问题相关的知识,希望对你有一定的参考价值。

昨天在做android接口调用的时候,api接口是https的,用okhttp抛出:

okhttp3.internal.http2.StreamResetException: stream was reset: PROTOCOL_ERROR

原因是协议错误导致的,解决办法很简单,在实例化okhttpclient的时候用以下方法:

OkHttpClient client = new OkHttpClient.Builder()
                .protocols(Collections.singletonList(Protocol.HTTP_1_1))
                .build();

完美解决。

 

以上是关于解决okHttp使用https抛出stream was reset: PROTOCOL_ERROR的问题的主要内容,如果未能解决你的问题,请参考以下文章

certificatePinner 无法使用 okhttp 抛出 SSLHandshakeException:CertPathValidatorException 未找到证书路径的信任锚

使用 OkHttp 缓存 POST 请求

okhttp客户端在TMG代理服务器下抛出异常

CompositeDisposable.clear 导致 OkHttp 抛出 java.lang.IllegalStateException: Unbalanced enter/exit

无法访问已关闭的 Stream。抛出错误[重复]

使用 OkHttp 进行真实 HTTP 请求的 Robolectric 测试抛出 java.lang.NullPointerException:没有为 PKCS#12 KeyStore 提供密码