Метод ofByteArray
Метод ofByteArray класса HttpResponse.BodyHandlers
создает и возвращает обработчик тела HTTP-ответа, который
сохраняет тело в виде массива байтов (byte[]).
Этот метод не принимает параметров. Полученный обработчик
передается вторым параметром в метод send или
метод sendAsync объекта HttpClient.
Результатом выполнения запроса будет объект
HttpResponse<byte[]>, у которого метод body
вернет массив байтов.
Синтаксис
HttpResponse.BodyHandlers.ofByteArray()
Пример
Давайте выполним GET-запрос и получим тело ответа в виде массива байтов:
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<byte[]> response = client.send(
request,
HttpResponse.BodyHandlers.ofByteArray()
);
byte[] res = response.body();
System.out.println(res.length);
}
}
Результат выполнения кода:
1256
Пример
Давайте преобразуем полученный массив байтов в строку и выведем ее на экран:
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<byte[]> response = client.send(
request,
HttpResponse.BodyHandlers.ofByteArray()
);
byte[] res = response.body();
String text = new String(res, StandardCharsets.UTF_8);
System.out.println(text);
}
}
Результат выполнения кода:
"<!doctype html>..."
Смотрите также
-
класс
HttpResponse.BodyHandlers,
который содержит обработчики тела ответа -
метод
ofString,
который возвращает тело в виде строки -
метод
ofFile,
который сохраняет тело в файл -
метод
send,
который отправляет HTTP-запрос