Тайм-аўт для проксі Apache HttpClient 5, які завісае падчас CONNECT
Задайце тайм-аўт socket I/O мэнэджара злучэнняў для ўсталявання тунеля разам з асобным тайм-аўтам TCP-злучэння.
Проксі прыняў TCP, але так і не завяршыў адказ CONNECT. Адказ сайта яшчэ не пачаўся; тайм-аўт, накіраваны толькі на гэты пазнейшы адказ, можа пакінуць такое ўсталяванне ў бясконцым чаканні.
Для Apache HttpClient 5.3.1 задайце значэнні па змаўчанні мэнэджара злучэнняў:
var connection = ConnectionConfig.custom()
.setConnectTimeout(Timeout.ofSeconds(5))
.setSocketTimeout(Timeout.ofSeconds(10))
.build();
var manager = PoolingHttpClientConnectionManagerBuilder.create()
.setDefaultConnectionConfig(connection)
.build();
var client = HttpClients.custom()
.setConnectionManager(manager)
.setProxy(new HttpHost("http", "proxy.example", 8080))
.build();Выкарыстоўвайце класы Apache HttpComponents 5 у org.apache.hc, а Timeout — у службовым пакеце core5. Трымайце кліент для яго працы і зачыняйце яго. Для ізаляванага публічнага HTTP-тэсту кандыдат з спісу HTTP-проксі забяспечвае канчатковы пункт; трымайце прызначэнне нязменным пры параўнанні тайм-аўтаў.
| Мяжа | Якое чаканне пакрываецца |
|---|---|
| Тайм-аўт злучэння | Усталяванне злучэння |
| Тайм-аўт сокета | Бяздзейнасць I/O па змаўчанні, уключаючы абмен CONNECT |
| Атрыманне з пула / адказ праграмы | Іншыя асобна наладжаныя этапы |
Пасля CONNECT TLS можа патрабаваць уласнай мяжы ўсталявання праз канфігурацыю TLS у HttpClient 5. Таксама адрознівайце бяздзейнасць ад агульнага дэдлайна: перарывістыя байты або паўторныя абмены аўтэнтыфікацыі могуць падоўжыць агульны час. Выкарыстоўвайце падтрымліваную праграмай палітыку дэдлайна або скасавання для аднаго бюджэту ўсёй аперацыі.