我在棒棒糖及以上设备中遇到奇怪的错误,因为它适用于kitkat设备。所有POST Api都工作正常。当我请求它失败时java.io.IOException: stream was reset: HTTP_1_1_REQUIRED'
。
答案 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()
,这可以帮助我解决身份验证器中发生的相同错误。