2017-01-29 7 views
1

Попытка сделать несколько тестовых примеров для HTTP-запросов. Я хочу различать HTTP/1.1 и HTTP/2. Для этого мне нужно знать, какую версию я использовал из запроса. Я также хочу заставить запрос использовать HTTP/1.1 или HTTP/2. Я использую OkHttp3 для Java. Вот простой запрос, который я делаю:Java OkHttp3 использовать только Http/1.1 ИЛИ Http/2

Request request = new Request.Builder() 
      .url(url) 
      .build(); 

Response response = client.newCall(request).execute(); 
return response.body().string(); 

ответ

2

Вы можете заставить запрос быть HTTP/1.1 только с помощью следующего кода

new OkHttpClient.Builder().protocols(Arrays.asList(Protocol.HTTP_1_1)); 

Вы не можете заставить HTTP/2 только как HTTP /1.1 должен быть в списке protocols.

Однако вы можете подтвердить, проверив protocol на объект Response

Request request = new Request.Builder() 
     .url("http://publicobject.com/helloworld.txt") 
     .build(); 

Response response = client.newCall(request).execute(); 

assert(response.protocol() == Protocol.HTTP_2); 

 Смежные вопросы

  • Нет связанных вопросов^_^