【发布时间】:2019-03-11 05:00:49
【问题描述】:
我们的移动应用需要同时发出 2 个不同的 HTTPS 请求。我们想确保只使用 1 个连接。我们的服务器支持 HTTP/2。
在 iOS 上,一切正常:只建立了 1 个连接。
在 Android 上,我们的应用正在建立 2 个不同的连接。
是否也可以在 Android 上实现相同的功能?
更新:
找到原因了:Android推荐的http客户端HttpUrlConnection不支持HTTP/2!
您对在 Android 上使用 HTTP/2 有什么建议?
【问题讨论】:
-
您可以尝试使用
System.setProperty("http.keepAlive","true");您需要自己维护连接并照顾urlConnection.disconnect();。 -- 我删除了我的答案是为了添加这个评论(它会得到更多的关注——人们通常会寻找未回答的问题),因为我对这个建议的结果有点不确定。我只是阅读了文档——过去我从未遇到过连接或连接池的任何问题......所以我真的没有挖得太深。 -
@Barns 看起来 HttpUrlConnection 使用的是 HTTP/1.1 而不是 HTTP/2。这很可能是原因!
-
根据文档
OkHttp支持HTTP/2。 -
但是貌似在HttpUrlConnection上,强制使用HTTP/1.1:stackoverflow.com/questions/44122781/…
-
我确定您对 HttpUrlConnection 的看法是正确的,我指的是
OKHttp:: github.com/square/okhttp
标签: android networking https httpurlconnection http2