Метод build
Метод build класса HttpRequest завершает построение HTTP-запроса и возвращает готовый объект HttpRequest. Он вызывается у объекта HttpRequest.Builder после того, как в билдер были переданы все необходимые параметры: URI, метод запроса, заголовки, тело и таймаут. Метод не принимает параметров и возвращает новый неизменяемый экземпляр HttpRequest, который затем можно передать в методы send или sendAsync класса HttpClient.
Синтаксис
HttpRequest request = builder.build();
Пример
Давайте создадим простой GET-запрос с помощью билдера и соберём его методом build:
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);
}
}
Результат выполнения кода:
https://example.com GET
Пример
Давайте добавим к запросу заголовок и тело, а затем соберём его методом build:
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/api"))
.header("Content-Type", "application/json")
.POST(HttpRequest.BodyPublishers.ofString("{\"key\":\"value\"}"))
.build();
System.out.println(request.method());
System.out.println(request.uri());
System.out.println(request.headers().map());
}
}
Результат выполнения кода:
POST
https://example.com/api
{content-type=[application/json]}
Пример
Давайте соберём запрос с таймаутом и выведем его параметры:
import java.net.URI;
import java.net.http.HttpRequest;
import java.time.Duration;
public class Main
{
public static void main(String[] args)
{
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://example.com"))
.timeout(Duration.ofSeconds(10))
.GET()
.build();
System.out.println(request.timeout().get().getSeconds());
System.out.println(request.method());
}
}
Результат выполнения кода:
10
GET
Смотрите также
-
класс
HttpRequest,
который представляет HTTP-запрос -
класс
HttpRequest.Builder,
который используется для создания запросов -
метод
newBuilder,
который создаёт новый билдер запроса -
метод
send,
который отправляет собранный запрос