Я провел последние дни, работая над этим, поэтому просто хочу поделиться с вами некоторыми «всеми известными» знаниями.
Во-первых, поскольку вы имеете дело с одним и тем же сервером, для выполнения ваших запросов рекомендуется использовать один HTTP-клиент. С помощью PoolingHttpClientConnectionManager
ваш клиент может использоваться для одновременного выполнения нескольких запросов. Официальный пример выполнения многопоточного запроса можно найти здесь .
Во-вторых, HTTP / 1.1 (и расширенные версии HTTP / 1.0) позволяет клиентам HTTP держать соединения открытыми после завершения транзакций, чтобы их можно было использовать для будущих запросов. Это часто упоминается как Постоянное соединение .
Также с целью повторного использования клиента для нескольких запросов заголовок ответа от сервера часто содержит атрибут атрибута Keep-Alive
, который содержит время, в течение которого текущее соединение будет поддерживаться. Помимо этого, Apache Http Client также предоставляет интерфейс ConnectionKeepAliveStrategy
для настройки собственной политики повторного использования соединения.