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

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

Заголовки ответа лежат отдельно от тела. Объект 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 fun main() { val client = HttpClient.newBuilder().build() val request = HttpRequest.newBuilder() .uri( URI.create( "https://httpbin.org/response-headers?" + "Content-Type=text/plain", ), ) .GET() .build() val response = client.send( request, HttpResponse.BodyHandlers.ofString(), ) val type = response.headers() .firstValue("content-type") .orElse("") println(type) }

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

import java.net.URI import java.net.http.HttpClient import java.net.http.HttpRequest import java.net.http.HttpResponse fun main() { val client = HttpClient.newBuilder().build() val request = HttpRequest.newBuilder() .uri( URI.create( "https://httpbin.org/response-headers?" + "Content-Type=text/plain", ), ) .GET() .build() val response = client.send( request, HttpResponse.BodyHandlers.ofString(), ) println(response.headers().map().size) }

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

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

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