Как использовать http/2 с Okhttp на устройствах Android?

Я тестирую сайт, поддерживающий HTTP/2, как это, и я пытаюсь использовать okhttp для отправки запроса:

OkHttpClient okHttpClient = new OkHttpClient();

Request request = new Request.Builder()
        .url("https://www.google.it")
        .build();


okHttpClient.newCall(request).enqueue(new Callback() {
    @Override
    public void onFailure(Request request, IOException e) {
        e.printStackTrace();
    }

    @Override
    public void onResponse(Response response) throws IOException {
        Log.d("TestHttp", "OkHttp-Selected-Protocol: " + response.header("OkHttp-Selected-Protocol"));
        Log.d("TestHttp", "Response code is " + response.code());
    }
});

В журнале я получил что-то вроде этого:

OkHttp-Selected-Protocol: http/1.1

OkhttpClient решил использовать http/1.1, как я могу заставить его использовать HTTP/2?

Ответ 1

Okhttp 2.5+ поддерживает только http/2 выше 5.0+ через ALPN.

но вы можете изменить исходный код для поддержки http/2 выше 4.0+ через NPN.