El proxy va acceptar TCP però mai no va acabar la resposta CONNECT. La resposta del lloc web encara no ha començat; un temps d'espera adreçat només a aquesta resposta posterior pot deixar aquest establiment esperant sense límit.

Per a Apache HttpClient 5.3.1, definiu els valors per defecte del gestor de connexions:

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

Feu servir les classes d'Apache HttpComponents 5 sota org.apache.hc, amb Timeout al paquet d'utilitats core5. Manteniu el client per a la seva feina i tanqueu-lo. Per a una prova HTTP pública aïllada, un candidat de la llista de proxies HTTP proporciona el punt final; manteniu la destinació estable en comparar temps d'espera.

LímitEspera coberta
Temps d'espera de connexióEstabliment de la connexió
Temps d'espera de socketInactivitat d'I/O per defecte, inclòs l'intercanvi CONNECT
Adquisició del pool / resposta de l'aplicacióAltres etapes configurades per separat

Després de CONNECT, TLS pot necessitar el seu propi límit d'establiment mitjançant la configuració TLS d'HttpClient 5. Distingiu també la inactivitat d'una data límit total: bytes intermitents o intercanvis d'autenticació repetits poden allargar el temps total. Utilitzeu la política de data límit o cancel·lació compatible amb l'aplicació per a un pressupost per a tota l'operació.

Articles relacionats