Метод ofString
Метод ofString класса HttpRequest.BodyPublishers
создает и возвращает объект HttpRequest.BodyPublisher,
телом которого является переданная строка. Такой publisher
используется при построении запроса через HttpRequest.newBuilder
вместе с методами POST или PUT. В первый параметр
мы передаем строку, которая станет телом запроса. Второй
необязательный параметр задает кодировку Charset,
в которой строка будет преобразована в байты. Если кодировка
не указана, используется UTF-8.
Синтаксис
HttpRequest.BodyPublishers.ofString(body)
HttpRequest.BodyPublishers.ofString(body, charset)
Пример
Давайте создадим publisher тела запроса из строки и посмотрим на его тип:
import java.net.http.HttpRequest;
public class Main
{
public static void main(String[] args)
{
HttpRequest.BodyPublisher publisher =
HttpRequest.BodyPublishers.ofString("abcde");
System.out.println(publisher);
System.out.println(publisher.contentLength());
}
}
Результат выполнения кода:
"jdk.internal.net.http.RequestPublishers$StringPublisher@..."
"5"
Пример
Давайте создадим тело запроса из строки с явным указанием кодировки:
import java.net.http.HttpRequest;
import java.nio.charset.StandardCharsets;
public class Main
{
public static void main(String[] args)
{
HttpRequest.BodyPublisher publisher =
HttpRequest.BodyPublishers.ofString("12345",
StandardCharsets.UTF_8);
System.out.println(publisher.contentLength());
}
}
Результат выполнения кода:
"5"
Пример
Давайте используем ofString при построении
POST-запроса с телом в формате JSON:
import java.net.URI;
import java.net.http.HttpRequest;
public class Main
{
public static void main(String[] args)
{
String json = "{\"name\":\"abcde\"}";
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://example.com/api"))
.header("Content-Type", "application/json")
.POST(HttpRequest.BodyPublishers.ofString(json))
.build();
System.out.println(request.method());
System.out.println(request.bodyPublisher().isPresent());
}
}
Результат выполнения кода:
"POST"
"true"
Смотрите также
-
класс
HttpRequest.BodyPublishers,
который содержит фабричные методы для создания тела запроса -
метод
ofFile,
который создает тело запроса из файла -
метод
noBody,
который создает пустое тело запроса -
метод
POST,
который задает POST-метод и тело запроса