Tidsavbrudd for en Apache HttpClient 5-proxy som henger under CONNECT
Angi socket-I/O-tidsavbruddet til tilkoblingsbehandleren for tunneloppsett, sammen med det separate TCP-tilkoblingstidsavbruddet.
Proxyen godtok TCP, men fullførte aldri CONNECT-svaret. Nettstedets svar har ikke begynt ennå; et tidsavbrudd som bare retter seg mot det senere svaret, kan la dette oppsettet vente ubegrenset.
For Apache HttpClient 5.3.1 angir du tilkoblingsbehandlerens standardverdier:
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();Bruk Apache HttpComponents 5-klassene under org.apache.hc, med Timeout i hjelpepakken core5. Behold klienten for arbeidet og lukk den. For en isolert offentlig HTTP-test leverer en kandidat fra HTTP-proxylisten endepunktet; hold destinasjonen fast når du sammenligner tidsavbrudd.
| Grense | Adressert ventetid |
|---|---|
| Tilkoblingstidsavbrudd | Etablering av tilkobling |
| Socket-tidsavbrudd | Standard I/O-inaktivitet, inkludert CONNECT-utvekslingen |
| Henting fra basseng / applikasjonssvar | Andre separat konfigurerte trinn |
Etter CONNECT kan TLS trenge sin egen oppsettgrense via TLS-konfigurasjonen til HttpClient 5. Skill også inaktivitet fra en samlet frist: avbrutte bytes eller gjentatte autentiseringsutvekslinger kan forlenge den totale tiden. Bruk applikasjonens støttede frist- eller avbrytelsespolicy for ett budsjett for hele operasjonen.