Метод headers
Метод headers класса HttpResponse возвращает
объект типа HttpHeaders, который содержит все
заголовки HTTP-ответа, полученного от сервера. Параметров
метод не принимает. С его помощью можно получить доступ
к метаданным ответа: типу контента, длине тела, дате,
серверным кукам и другим служебным полям.
Метод возвращает неизменяемую (immutable) коллекцию
заголовков. Для получения конкретного значения
используются методы firstValue и allValues
объекта HttpHeaders.
Синтаксис
HttpHeaders headers = response.headers()
Пример
Давайте отправим GET-запрос и выведем все заголовки ответа на экран:
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;
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.headers());
}
}
Результат выполнения кода:
java.net.http.HttpHeaders@1a2b3c4d { {:status=[200], content-type=[text/html; charset=UTF-8], content-length=[1256], ...} }
Пример
Давайте получим значение конкретного заголовка
content-type с помощью метода firstValue:
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;
import java.util.Optional;
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()
);
Optional<String> contentType = response.headers()
.firstValue("content-type");
System.out.println(contentType.orElse("not found"));
}
}
Результат выполнения кода:
"text/html; charset=UTF-8"
Пример
Давайте выведем все значения заголовка set-cookie
с помощью метода allValues:
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;
import java.util.List;
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()
);
List<String> cookies = response.headers()
.allValues("set-cookie");
System.out.println(cookies);
}
}
Результат выполнения кода:
[sessionId=abc123; Path=/; HttpOnly]
Смотрите также
-
класс
HttpResponse,
который представляет HTTP-ответ сервера -
метод
statusCode,
который возвращает код состояния ответа -
метод
body,
который возвращает тело ответа -
класс
HttpHeaders,
который представляет коллекцию заголовков