Sobes.tech
Назад к вопросам
Junior — Middle
91

Каким образом можно реализовать синхронный обмен данными между сервером и внешней системой?

Ответ от нейросети

sobes.tech AI

Синхронный обмен данными между сервером и внешней системой в Java обычно реализуется через прямой вызов API или сервисов, где сервер ожидает ответ до продолжения работы. Основные способы:

  • HTTP-запросы (REST/SOAP) — сервер отправляет запрос и ждёт ответа. Для этого можно использовать библиотеки HttpURLConnection, HttpClient (Java 11+) или сторонние, например, Apache HttpClient.

  • Вызов удалённых процедур (RPC) — через технологии вроде gRPC, RMI.

  • Сокеты — открытие TCP-соединения и обмен сообщениями в реальном времени.

Пример синхронного HTTP GET запроса с использованием HttpClient (Java 11+):

import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;

HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("https://api.example.com/data"))
    .build();

HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());

if (response.statusCode() == 200) {
    String responseBody = response.body();
    System.out.println(responseBody);
} else {
    System.out.println("Ошибка: " + response.statusCode());
}

В этом примере сервер отправляет запрос и ждёт ответа, что и есть синхронный обмен.