流被重置:HTTP_1_1_REQUIRED错误改造2

时间:2016-03-31 18:20:53

标签: android retrofit2

我在棒棒糖及以上设备中遇到奇怪的错误,因为它适用于kitkat设备。所有POST Api都工作正常。当我请求它失败时java.io.IOException: stream was reset: HTTP_1_1_REQUIRED'

4 个答案:

答案 0 :(得分:1)

我遇到了和你一样的问题,在我的情况下问题是我用来测试我的应用程序的本地服务器的SSL证书,因此将API的基本URL更改为http://domain...而不是https://domain...解决了我的问题。

现在我需要弄清楚为什么我的本地服务器(IIS)中的SSL证书(让我们加密)会在Android 5.0 +中导致此问题。

我希望这可以帮助您解决问题,至少作为一个起点。如果其他人帮助解决SSL证书问题,那就太好了。

答案 1 :(得分:1)

也许您需要特定资源的客户端证书? HTTP / 2不支持这些,因为它们在发送连接前缀后需要重新协商。结果将重置流,用户代理应使用HTTP / 1.1重试。

答案 2 :(得分:1)

在OkHttp中,在构建器中添加此行

.protocols(Util.immutableList(Protocol.HTTP_1_1))

像这样

 private OkHttpClient client = new OkHttpClient.Builder()
            .protocols(Util.immutableList(Protocol.HTTP_1_1))
            .build();

答案 3 :(得分:0)

如果将okHttp 4.2.2与拦截器一起使用,请尝试在OkHttpClient.Builder()中将https://www.jqueryscript.net/demo/Easy-Google-Web-Font-Selector-With-jQuery-Fontselect/替换为.addNetworkInterceptor(),这可以帮助我解决身份验证器中发生的相同错误。