Лучший способ настроить тайм -ауты на Apache httpclient 5JAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Лучший способ настроить тайм -ауты на Apache httpclient 5

Сообщение Anonymous »

Я пытаюсь понять разницу между различными конфигурациями тайм -аута в httpclient и самым простым способом его настройки.
Различные параметры показаны в этом коде:

Код: Выделить всё

RequestConfig requestConfig = RequestConfig.custom()
.setConnectionRequestTimeout(connectionRequestTimeout, TimeUnit.MILLISECONDS)
.setResponseTimeout(responseTimeout, TimeUnit.MILLISECONDS)
.setConnectTimeout(connectTimeout, TimeUnit.MILLISECONDS) // Deprecated - Use {@link ConnectionConfig.Builder#setConnectTimeout(Timeout)}.
.build();

ConnectionConfig connectionConfig = ConnectionConfig.custom()
.setConnectTimeout(connectTimeout, TimeUnit.MILLISECONDS)
.setSocketTimeout(socketTimeout, TimeUnit.MILLISECONDS)
.build();

SocketConfig socketConfig = SocketConfig.custom()
.setSoTimeout(socketTimeout, TimeUnit.MILLISECONDS)
.build();

PoolingHttpClientConnectionManager poolingHttpClientConnectionManager = PoolingHttpClientConnectionManagerBuilder.create()
.setDefaultConnectionConfig(connectionConfig)
.setDefaultSocketConfig(socketConfig)
.build();

HttpClient httpClient = HttpClientBuilder.create()
.setConnectionManager(poolingHttpClientConnectionManager)
.setDefaultRequestConfig(requestConfig)
.build();
< /code>
Мое текущее понимание таково: < /p>
ConnectionRequestTimeout
- это время, необходимое для получения соединения из пула - релевантное, если под загрузкой.

Код: Выделить всё

ConnectTimeout
- это время для установления соединения.
Но в чем разница между:

Код: Выделить всё

RequestConfig.setResponseTimeout()
ConnectionConfig.setSocketTimeout()
SocketConfig.setSoTimeout()
< /code>
Все они, кажется, прочитаны /ответные тайм -ауты для запроса. Мне нужно только установить один из них?
из некоторого ограниченного тестирования, кажется, ответом времени < /code> переопределяет другие, возможно, подразумевает, что все, что мне нужно. Было бы неплохо просто использовать requestConfig 
, чтобы установить все три, но подключение к была устаревана там и перенесена в ConnectConfig , который также содержит Sockettimeout .
Я использую это с Springboot 3/Spring 6 и недавним удалением опции чтения на httpcomponentsclienthttprequestfactory , похоже, подразумевает Лучше всего настроить это прямо на HttpClient.

Подробнее здесь: https://stackoverflow.com/questions/780 ... tpclient-5
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»