Делаем простой HTTP-запрос через HttpClient!
Иногда нужно без сторонних библиотек сходить в API, получить JSON или проверить доступность. Начиная с Java 11 для этого есть встроенный HttpClient.
Сначала создадим клиент:
HttpClient client = HttpClient.newHttpClient();
Теперь соберём request:
HttpRequest request = HttpRequest.newBuilder()
Укажем адрес:
.uri(URI.create("https://api.github.com"))
Выберем GET-запрос:
.GET()
И соберём объект:
.build();
Ответ можно получить синхронно:
var response = client.send(request,
HttpResponse.BodyHandlers.ofString());
Код статуса лежит отдельно:
System.out.println(response.statusCode());
Тело ответа можно прочитать так:
System.out.println(response.body());
Для реального кода почти всегда стоит добавить timeout. Тогда запрос не сможет зависнуть навсегда:
.timeout(Duration.ofSeconds(5))
Если запросов много, клиент лучше переиспользовать. Он потокобезопасный и нормально подходит для сервисов, CLI-утилит и фоновых задач.
Такой подход удобен, когда нужно быстро сделать интеграцию без OkHttp, Apache HttpClient и других зависимостей.
👉 Java Ready | #практика
Иногда нужно без сторонних библиотек сходить в API, получить JSON или проверить доступность. Начиная с Java 11 для этого есть встроенный HttpClient.
Сначала создадим клиент:
HttpClient client = HttpClient.newHttpClient();
Теперь соберём request:
HttpRequest request = HttpRequest.newBuilder()
Укажем адрес:
.uri(URI.create("https://api.github.com"))
Выберем GET-запрос:
.GET()
И соберём объект:
.build();
Ответ можно получить синхронно:
var response = client.send(request,
HttpResponse.BodyHandlers.ofString());
Код статуса лежит отдельно:
System.out.println(response.statusCode());
Тело ответа можно прочитать так:
System.out.println(response.body());
Для реального кода почти всегда стоит добавить timeout. Тогда запрос не сможет зависнуть навсегда:
.timeout(Duration.ofSeconds(5))
Если запросов много, клиент лучше переиспользовать. Он потокобезопасный и нормально подходит для сервисов, CLI-утилит и фоновых задач.
Такой подход удобен, когда нужно быстро сделать интеграцию без OkHttp, Apache HttpClient и других зависимостей.
👉 Java Ready | #практика