Taimauts Apache HttpClient 5 starpniekserverim, kas iestrēgst CONNECT laikā
Iestatiet savienojumu pārvaldnieka socket I/O taimautu tuneļa izveidei kopā ar atsevišķu TCP savienojuma taimautu.
Starpniekserveris pieņēma TCP, bet nekad nepabeidza CONNECT atbildi. Vietnes atbilde vēl nav sākusies; taimauts, kas vērsts tikai uz šo vēlāko atbildi, var atstāt šo izveidi gaidām bezgalīgi.
Apache HttpClient 5.3.1 gadījumā iestatiet savienojumu pārvaldnieka noklusējuma vērtības:
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();Izmantojiet Apache HttpComponents 5 klases zem org.apache.hc, ar Timeout palīgpakotnē core5. Saglabājiet klientu tā darbam un aizveriet to. Izolētam publiskam HTTP testam kandidāts no HTTP starpniekserveru saraksta nodrošina galapunktu; salīdzinot taimautus, turiet galamērķi nemainīgu.
| Ierobežojums | Risinātā gaidīšana |
|---|---|
| Savienojuma taimauts | Savienojuma izveide |
| Socket taimauts | Noklusējuma I/O neaktivitāte, ieskaitot CONNECT apmaiņu |
| Iegūšana no kopas / lietojumprogrammas atbilde | Citi atsevišķi konfigurēti posmi |
Pēc CONNECT TLS var būt nepieciešams savs izveides ierobežojums, izmantojot HttpClient 5 TLS konfigurāciju. Arī atšķiriet neaktivitāti no kopējā termiņa: pārtraukti baiti vai atkārtotas autentifikācijas apmaiņas var pagarināt kopējo laiku. Izmantojiet lietojumprogrammas atbalstīto termiņa vai atcelšanas politiku vienam budžetam visai darbībai.