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

Метод ofString класса HttpResponse.BodyHandlers

Метод ofString класса HttpResponse.BodyHandlers возвращает объект BodyHandler<String>, который преобразует тело HTTP-ответа в строку. Это один из самых удобных способов получить текстовый ответ от сервера. В первом параметре метода мы передаем кодировку (объект Charset), которая будет использоваться для декодирования байтов в строку. Если параметр не указан, используется кодировка UTF-8.

Синтаксис

HttpResponse.BodyHandlers.ofString() HttpResponse.BodyHandlers.ofString(charset)

Пример

Давайте создадим HTTP-запрос и получим тело ответа в виде строки, используя обработчик ofString без параметров (кодировка UTF-8 по умолчанию):

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.newHttpClient(); HttpRequest request = HttpRequest.newBuilder() .uri(URI.create("https://example.com")) .GET() .build(); HttpResponse<String> response = client.send( request, HttpResponse.BodyHandlers.ofString() ); String res = response.body(); System.out.println(res); } }

Результат выполнения кода (фрагмент HTML-страницы):

"<!doctype html> <html> <head> <title>Example Domain</title> ... </html>"

Пример

Давайте явно укажем кодировку при создании обработчика. Для этого передадим в метод ofString объект StandardCharsets.UTF_8:

import java.net.URI; import java.net.http.HttpClient; import java.net.http.HttpRequest; import java.net.http.HttpResponse; import java.nio.charset.StandardCharsets; 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(StandardCharsets.UTF_8) ); String res = response.body(); System.out.println(res.length()); } }

Результат выполнения кода:

1256

Смотрите также

  • класс HttpResponse.BodyHandlers,
    который содержит другие обработчики тела ответа
  • метод ofFile,
    который сохраняет тело ответа в файл
  • метод ofByteArray,
    который преобразует тело ответа в массив байтов
  • метод send,
    который отправляет HTTP-запрос и получает ответ
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить