Метод version
Метод version класса HttpResponse возвращает объект HttpClient.Version, который представляет версию HTTP-протокола, использованную при обработке запроса. Этот метод не принимает параметров и возвращает одну из констант: HTTP_1_1 или HTTP_2. Знание версии протокола бывает полезно для логирования, отладки или принятия решений о дальнейшей обработке ответа.
Синтаксис
response.version()
Пример
Давайте выполним GET-запрос к серверу и выведем версию HTTP, которую использовал сервер для ответа:
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class Main
{
public static void main(String[] args) throws Exception
{
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://example.com"))
.GET()
.build();
HttpResponse<String> response = client.send(
request,
HttpResponse.BodyHandlers.ofString()
);
System.out.println(response.version());
}
}
Результат выполнения кода:
HTTP_1_1
Пример
Давайте сравним полученную версию с константой HTTP_2 и выведем соответствующее сообщение:
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class Main
{
public static void main(String[] args) throws Exception
{
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://example.com"))
.GET()
.build();
HttpResponse<String> response = client.send(
request,
HttpResponse.BodyHandlers.ofString()
);
if (response.version() == HttpClient.Version.HTTP_2)
{
System.out.println("HTTP/2 is used");
}
else
{
System.out.println("HTTP/1.1 is used");
}
}
}
Результат выполнения кода:
"HTTP/1.1 is used"
Смотрите также
-
класс
HttpResponse,
который представляет HTTP-ответ -
метод
statusCode,
который возвращает код состояния ответа -
метод
headers,
который возвращает заголовки ответа -
метод
body,
который возвращает тело ответа