Класс HttpRequest.BodyPublishers
Класс HttpRequest.BodyPublishers содержит статические методы,
позволяющие создать тело HTTP-запроса из различных источников:
строки, файла, массива байтов или потока данных. Полученный объект
типа HttpRequest.BodyPublisher затем передается в метод
POST или PUT билдера запроса. Если тело запроса
не требуется, используется метод noBody.
Синтаксис
HttpRequest.BodyPublishers.ofString(String body)
HttpRequest.BodyPublishers.ofFile(Path path)
HttpRequest.BodyPublishers.noBody()
Пример
Давайте создадим тело запроса из строки и передадим его
в POST-запрос с помощью метода ofString:
import java.net.http.HttpRequest;
import java.net.http.HttpClient;
import java.net.http.HttpResponse;
import java.net.URI;
public class Main
{
public static void main(String[] args) throws Exception
{
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://httpbin.org/post"))
.POST(HttpRequest.BodyPublishers.ofString("abcde"))
.build();
HttpClient client = HttpClient.newHttpClient();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.statusCode());
}
}
Результат выполнения кода:
200
Пример
Давайте отправим запрос без тела, используя метод
noBody:
import java.net.http.HttpRequest;
import java.net.http.HttpClient;
import java.net.http.HttpResponse;
import java.net.URI;
public class Main
{
public static void main(String[] args) throws Exception
{
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://httpbin.org/get"))
.method("GET", HttpRequest.BodyPublishers.noBody())
.build();
HttpClient client = HttpClient.newHttpClient();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.statusCode());
}
}
Результат выполнения кода:
200
Пример
Давайте создадим тело запроса из файла с помощью метода
ofFile:
import java.net.http.HttpRequest;
import java.net.http.HttpClient;
import java.net.http.HttpResponse;
import java.net.URI;
import java.nio.file.Path;
public class Main
{
public static void main(String[] args) throws Exception
{
Path path = Path.of("data.txt");
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://httpbin.org/post"))
.POST(HttpRequest.BodyPublishers.ofFile(path))
.build();
HttpClient client = HttpClient.newHttpClient();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.statusCode());
}
}
Результат выполнения кода:
200
Смотрите также
-
класс
HttpRequest,
который представляет HTTP-запрос -
метод
POST,
который задает тело POST-запроса -
метод
ofString,
который создает тело из строки -
метод
ofFile,
который создает тело из файла