为啥 Android 的 HttpUrlConnection 不支持 HTTP/2?
Posted
技术标签:
【中文标题】为啥 Android 的 HttpUrlConnection 不支持 HTTP/2?【英文标题】:Why HTTP/2 is not supported by Android's HttpUrlConnection?为什么 Android 的 HttpUrlConnection 不支持 HTTP/2? 【发布时间】:2019-03-11 07:44:37 【问题描述】:我刚发现android推荐的http客户端HttpUrlConnection
不支持HTTP/2。
是否有特定原因不在 Android 上使用 HTTP/2?
【问题讨论】:
多年前就支持 SPDY,它是 HTTP/2 的前身。您如何确定不支持 HTTP/2?不过,出于多种原因,OkHttp 是更好的选择。 我正在监控服务器端的 https 请求。来自使用 HttpUrlConnection 的 Android 应用程序的请求始终为 HTTP/1.1,即使在 Android 9 上也是如此。而来自 ios 应用程序的请求始终为 HTTP/2。 【参考方案1】:如果你想利用 HTTP/2,你可以使用 OkHttp:
https://github.com/square/okhttp
无论如何,它都优于 HttpUrlConnection。如果您正在做任何复杂的事情,例如从 Web API 获取复杂的 JSON 响应,我建议您使用 Retrofit:
https://square.github.io/retrofit/
【讨论】:
以上是关于为啥 Android 的 HttpUrlConnection 不支持 HTTP/2?的主要内容,如果未能解决你的问题,请参考以下文章
为啥Android找不到android.graphics.OpenGLContext?
android: NeighboringCellInfo 总是空的!?为啥?