@aibb

Как в рамкак одного соединения посылать множество GET запросов?

Открываю соединение вот так:
HttpURLConnection con = (HttpURLConnection) startUrl.openConnection();

Этому соединению присваивается sessionID и токен (токен уникален для каждой сессии). С этого соединения я получаю необходимые данные для конструирования GET запроса, но если снова использовать .openConnection();, то это будет уже другая сессия и другой токен.
  • Вопрос задан
  • 90 просмотров
Решения вопроса 1
CellycoMobiles
@CellycoMobiles
indi developer @CellycoMobiles
Попробуйте клиент из Java 9.
Не закрывайте клиент. Добавьте хендлер для кук.

var cookieHandler = new CookieManager();
        CookieHandler.setDefault(cookieHandler);
       var executor = Executors.newWorkStealingPool(10);
       var httpClient = HttpClient.newBuilder()
                .executor(executor)
                .connectTimeout(Duration.ofSeconds(15))
                .version(HttpClient.Version.HTTP_2)
                .followRedirects(HttpClient.Redirect.ALWAYS)
                .cookieHandler(CookieHandler.getDefault())
                .build();


Используйте повторно при последующих запросах.

Например так :

final HttpRequest httpRequest = HttpRequest.newBuilder()
                .GET().uri(URI.create(url))
                .build();
        return httpClient.sendAsync(httpRequest, RESPONSE_BODY_HANDLER)
                .thenApply(response -> System.out.println(response.statusCode()));
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы