Le proxy a accepté TCP mais n'a jamais terminé la réponse CONNECT. La réponse du site n'a pas encore commencé ; un délai qui ne viserait que cette réponse ultérieure peut laisser cette mise en place attendre indéfiniment.

Pour Apache HttpClient 5.3.1, définissez les valeurs par défaut du gestionnaire 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();

Utilisez les classes Apache HttpComponents 5 sous org.apache.hc, avec Timeout dans le paquet utilitaire core5. Conservez le client pour son travail et fermez-le. Pour un test HTTP public isolé, un candidat de la liste de proxys HTTP fournit le point de terminaison ; gardez la destination stable lors de la comparaison des délais.

LimiteAttente traitée
Délai de connexionÉtablissement de la connexion
Délai de socketInactivité d'E/S par défaut, y compris l'échange CONNECT
Acquisition dans le pool / réponse de l'applicationAutres étapes configurées séparément

Après CONNECT, TLS peut nécessiter sa propre limite d'établissement via la configuration TLS d'HttpClient 5. Distinguez aussi l'inactivité d'une échéance globale : des octets intermittents ou des échanges d'authentification répétés peuvent allonger le temps total. Utilisez la politique d'échéance ou d'annulation prise en charge par l'application pour un budget pour l'opération entière.

Articles similaires