Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗jvSpHtRsH 236 of 322 menu
◀ ▶

Заголовки ответа в Java

Заголовки ответа лежат отдельно от тела. Объект HttpHeaders возвращает метод response.headers. Имена в HTTP не чувствительны к регистру, но в API их ищут в нижнем регистре.

Эндпоинт "/response-headers" позволяет задать заголовки, которые сервер вернет клиенту. Тип содержимого удобно проверить так:

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.newBuilder().build(); HttpRequest request = HttpRequest.newBuilder() .uri( URI.create( "https://httpbin.org/response-headers?" + "Content-Type=text/plain", ), ) .GET() .build(); HttpResponse<String> response = client.send( request, HttpResponse.BodyHandlers.ofString(), ); String type = response.headers() .firstValue("content-type") .orElse(""); System.out.println(type); } }

Метод firstValue дает первое значение для имени или пустую строку через orElse. Список всех значений для поля доступен через allValues:

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.newBuilder().build(); HttpRequest request = HttpRequest.newBuilder() .uri( URI.create( "https://httpbin.org/response-headers?" + "Content-Type=text/plain", ), ) .GET() .build(); HttpResponse<String> response = client.send( request, HttpResponse.BodyHandlers.ofString(), ); System.out.println(response.headers().map().size()); } }

Выведите значение поля "content-type" для ответа "https://httpbin.org/response-headers?Content-Type=text/html".

Отправьте чтение на "/get" и напечатайте первое значение заголовка "date", если он пришел, иначе строку "none".

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить