gpt4 book ai didi

android - Okhttp 在 Android 7.0 上没有选择 http2

转载 作者:行者123 更新时间:2023-11-30 00:32:10 30 4
gpt4 key购买 nike

我正在尝试在运行 Android 7.0 的设备上向以下域(启用 http2)发出 HTTP 请求。

我使用的代码如下:

Request request = new Request.Builder()
.url("https://http2.akamai.com/")
.build();

response = okHttpClient.newCall(request).execute();
statusCode = response.code();

正如我在响应对象中注意到的,okHttp 使用的协议(protocol)是 HTTP 1.1

okhttp 客户端的行为是随机的,有一次我能够看到协议(protocol)为 h2 但随后重复请求,它一直选择 HTTP 1.1

我正在使用 okhttp v3.5

我可能在这里遗漏了什么?

最佳答案

Android 在其 OkHttp 中仅启用了 HTTP/1.1。

/**
* Creates an OkHttpClient suitable for creating HttpsURLConnection instances on
* Android.
*/
public static OkUrlFactory createHttpsOkUrlFactory(Proxy proxy) {
...
// Only enable HTTP/1.1 (implies HTTP/1.0). Disable SPDY / HTTP/2.0.
okHttpClient.setProtocols(HTTP_1_1_ONLY);

https://android.googlesource.com/platform/external/okhttp/+/master/android/main/java/com/squareup/okhttp/HttpsHandler.java#75

关于android - Okhttp 在 Android 7.0 上没有选择 http2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44122781/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com