Temps d'espera per a un proxy Apache HttpClient 5 que s'encalla durant CONNECT
Definiu el temps d'espera de socket I/O del gestor de connexions per a l'establiment del túnel, juntament amb el temps d'espera TCP de connexió separat.
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ímit | Espera coberta |
|---|---|
| Temps d'espera de connexió | Establiment de la connexió |
| Temps d'espera de socket | Inactivitat 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ó.