首页 > 解决方案 > 带有 OkHttp 的 HTTP 版本

问题描述

如何知道 Android App 中的 OkHttp 使用了哪个版本的 HTTP(第一个或第二个 - HTTP/1 或 HTTP/2)?

是否可以通过 OkHttp 日志定义如下?

D/OkHttp: <-- 200 OK https://someurl (1009ms)
D/OkHttp: Date: Thu, 10 Apr 2019 13:02:27 GMT
D/OkHttp: Content-Type: application/json; charset=utf-8
D/OkHttp: Transfer-Encoding: chunked
D/OkHttp: Connection: keep-alive
...
D/OkHttp: Cache-Control: max-age=0
D/OkHttp: {json_string}
D/OkHttp: <-- END HTTP (664-byte body)

标签: androidhttpkotlinokhttp

解决方案


在您的响应对象上尝试 protocol() 函数。例子:

val client = OkHttpClient()
val request = Request.Builder().url("https://samplepage.com").build()
val response = client.newCall(request).execute()
System.out.println("protocol: " + response.protocol())

推荐阅读