Метод noBody
Метод noBody класса HttpRequest.BodyPublishers
создает и возвращает объект BodyPublisher,
который не содержит тела запроса. Такой публикатор
используется для запросов, у которых нет тела,
например для GET, DELETE или HEAD.
Метод не принимает параметров. Длина тела
в таком публикаторе равна нулю, а поток данных
сразу завершается без выдачи байтов.
Синтаксис
HttpRequest.BodyPublishers.noBody()
Пример
Давайте создадим публикатор без тела и выведем
его длину через метод contentLength:
import java.net.http.HttpRequest;
public class Main
{
public static void main(String[] args)
{
HttpRequest.BodyPublisher publisher = HttpRequest.BodyPublishers.noBody();
System.out.println(publisher.contentLength());
}
}
Результат выполнения кода:
0
Пример
Давайте используем noBody при построении
GET-запроса через HttpRequest.newBuilder:
import java.net.URI;
import java.net.http.HttpRequest;
public class Main
{
public static void main(String[] args)
{
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://example.com"))
.GET()
.build();
System.out.println(request.method());
System.out.println(request.bodyPublisher().isPresent());
}
}
Результат выполнения кода:
"GET"
false
Пример
Давайте явно передадим noBody в билдер
запроса через метод method и проверим,
что тело отсутствует:
import java.net.URI;
import java.net.http.HttpRequest;
public class Main
{
public static void main(String[] args)
{
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://example.com"))
.method("DELETE", HttpRequest.BodyPublishers.noBody())
.build();
System.out.println(request.method());
System.out.println(request.bodyPublisher().get().contentLength());
}
}
Результат выполнения кода:
"DELETE"
0
Смотрите также
-
класс
HttpRequest.BodyPublishers,
который создает публикаторов тела запроса -
метод
ofString,
который создает тело из строки -
метод
newBuilder,
который создает билдер HTTP-запроса -
метод
build,
который собирает объект HTTP-запроса