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

Чтение тела ответа в Kotlin

Тело ответа не появляется само: при вызове send нужно указать, как его принять. Обработчик HttpResponse.BodyHandlers.ofString читает поток байтов и собирает одну строку в кодировке UTF-8.

Строку берут из поля body уже после завершения запроса. Для проверки достаточно напечатать результат:

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/get")) .GET() .build() val response = client.send( request, HttpResponse.BodyHandlers.ofString(), ) val text = response.body() println(text) }

Один и тот же обработчик подходит для любого GET, где ожидается текст. Бинарные форматы здесь не разбирают - строка остается сырой, как пришла по сети:

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/get")) .GET() .build() val response = client.send( request, HttpResponse.BodyHandlers.ofString(), ) println(response.body().length) }

Выведите тело ответа для "https://httpbin.org/get?source=lab".

Отправьте чтение на "/headers" и напечатайте длину строки тела ответа.

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