Временско ограничување за 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 прокси обезбедува крајна точка; држете ја дестинацијата стабилна кога споредувате временски ограничувања.
| Ограничување | Адресирано чекање |
|---|---|
| Ограничување за поврзување | Воспоставување врска |
| Socket ограничување | Стандардна I/O неактивност, вклучувајќи ја размената CONNECT |
| Земање од базенот / одговор на апликацијата | Други одделно конфигурирани фази |
По CONNECT, TLS може да бара сопствена граница за поставување преку TLS конфигурацијата на HttpClient 5. Исто така, разликувајте неактивност од вкупен рок: прекинати бајти или повторени размени за автентикација можат да го продолжат вкупното време. Користете ја поддржаната политика за рок или откажување на апликацијата за еден буџет за целата операција.