РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
1126 of 1163 menu

Метод 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,
    который представляет коллекцию заголовков
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить