Метод build
Метод build класса HttpRequest.Builder завершает
процесс конфигурирования HTTP-запроса и возвращает
готовый объект HttpRequest. Класс
HttpRequest.Builder используется для пошагового
создания запроса: сначала задается URI, метод, заголовки,
тело и таймаут, а затем вызов build фиксирует
все эти настройки в неизменяемом экземпляре
HttpRequest. Метод не принимает параметров.
После вызова build дальнейшее изменение построителя
не влияет на уже созданный запрос.
Синтаксис
public HttpRequest build()
Пример
Давайте создадим простой GET-запрос с помощью
HttpRequest.newBuilder и завершим его
вызовом build, а затем выведем метод и URI
полученного запроса:
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.uri());
}
}
Результат выполнения кода:
"GET"
"https://example.com"
Пример
Давайте создадим POST-запрос с заголовком и телом,
завершим его методом build и выведем метод,
URI и наличие тела запроса:
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.bodyPublisher().isPresent());
}
}
Результат выполнения кода:
"POST"
"https://example.com/api"
true
Пример
Давайте создадим запрос с таймаутом и выведем его
значение через метод timeout уже готового
объекта HttpRequest:
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(5))
.GET()
.build();
System.out.println(request.timeout().get());
}
}
Результат выполнения кода:
PT5S
Смотрите также
-
класс
HttpRequest,
который представляет HTTP-запрос -
класс
HttpRequest.Builder,
который используется для создания запроса -
метод
newBuilder,
который создает новый построитель запроса -
метод
header,
который добавляет заголовок в запрос