Tidsavbrot for ein Apache HttpClient 5-proxy som heng under CONNECT
Set socket-I/O-tidsavbrotet til tilkoplingshandsamaren for tunelloppsett, saman med det separate TCP-tilkoplingstidsavbrotet.
Proxyen tok imot TCP, men fullførte aldri CONNECT-svaret. Svaret frå nettstaden har ikkje byrja enno; eit tidsavbrot som berre rettar seg mot det seinare svaret, kan la dette oppsettet vente utan grense.
For Apache HttpClient 5.3.1 set du standardverdiane til tilkoplingshandsamaren:
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-klassane under org.apache.hc, med Timeout i hjelpepakken core5. Hald klienten for arbeidet og lukk han. For ein isolert offentleg HTTP-test leverer ein kandidat frå HTTP-proxylista endepunktet; hald destinasjonen fast når du samanliknar tidsavbrot.
| Grense | Adressert venting |
|---|---|
| Tilkoplingstidsavbrot | Etablering av tilkopling |
| Socket-tidsavbrot | Standard I/O-inaktivitet, inkludert CONNECT-utvekslinga |
| Henting frå basseng / applikasjonssvar | Andre separat konfigurerte trinn |
Etter CONNECT kan TLS trenge si eiga oppsettgrense via TLS-konfigurasjonen til HttpClient 5. Skil også inaktivitet frå ein samla frist: avbrotne bytar eller gjentekne autentiseringsutvekslingar kan forlenge den totale tida. Bruk den støtta frist- eller avbrytingspolicyen til applikasjonen for eitt budsjett for heile operasjonen.