Proxien accepterede TCP, men fuldførte aldrig CONNECT-svaret. Webstedets svar er ikke begyndt endnu; en timeout, der kun er rettet mod det senere svar, kan lade denne opsætning vente ubegrænset.

For Apache HttpClient 5.3.1 angiver du forbindelsesadministratorens standardværdier:

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();

Brug Apache HttpComponents 5-klasserne under org.apache.hc, med Timeout i hjælpepakken core5. Behold klienten til dens arbejde, og luk den. Til en isoleret offentlig HTTP-test leverer en kandidat fra HTTP-proxylisten slutpunktet; hold destinationen fast, når du sammenligner timeouts.

GrænseAfhjulpet ventetid
ForbindelsestimeoutEtablering af forbindelse
Socket-timeoutStandard-I/O-inaktivitet, inklusive CONNECT-udvekslingen
Hentning fra pulje / applikationssvarAndre separat konfigurerede faser

Efter CONNECT kan TLS kræve sin egen opsætningsgrænse via HttpClient 5's TLS-konfiguration. Skeln også mellem inaktivitet og en samlet frist: afbrudte bytes eller gentagne godkendelsesudvekslinger kan forlænge den samlede tid. Brug applikationens understøttede frist- eller annulleringspolitik for ét budget for hele operationen.

Relaterede artikler