Временско ограничење за 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. Такође разликујте неактивност од укупног рока: прекинути бајтови или поновљене размене провере могу продужити укупно време. Користите подржану политику рока или отказивања апликације за један буџет за целу операцију.