Метод body класса HttpResponse
Метод body класса HttpResponse возвращает
тело HTTP-ответа. Тип возвращаемого значения зависит
от того, какой обработчик тела (BodyHandler) был
передан в метод send при отправке запроса.
Метод не принимает параметров и возвращает объект,
который был сформирован обработчиком. Если обработчик
вернул String, то и метод body вернет
String, если byte[] - вернет массив байт
и так далее.
Синтаксис
response.body()
Пример
Давайте отправим GET-запрос и получим тело ответа
в виде строки, используя обработчик
BodyHandlers.ofString:
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.http.HttpResponse.BodyHandlers;
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, BodyHandlers.ofString());
String res = response.body();
System.out.println(res);
}
}
Результат выполнения кода (сокращенно):
"<!doctype html>..."
Пример
Давайте получим тело ответа в виде массива байт,
используя обработчик BodyHandlers.ofByteArray:
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.http.HttpResponse.BodyHandlers;
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, BodyHandlers.ofByteArray());
byte[] res = response.body();
System.out.println(res.length);
}
}
Результат выполнения кода:
1256
Смотрите также
-
класс
HttpResponse,
который представляет HTTP-ответ -
метод
statusCode,
который возвращает код состояния ответа -
метод
headers,
который возвращает заголовки ответа -
класс
HttpResponse.BodyHandlers,
который содержит обработчики тела ответа