O proxy aceitou TCP mas nunca concluiu a resposta CONNECT. A resposta do site ainda não começou; um tempo limite voltado apenas para essa resposta posterior pode deixar esta configuração esperando sem limite.

Para o Apache HttpClient 5.3.1, defina os padrões do gerenciador de conexões:

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

Use as classes do Apache HttpComponents 5 em org.apache.hc, com Timeout no pacote utilitário core5. Mantenha o cliente para o seu trabalho e feche-o. Para um teste HTTP público isolado, um candidato da lista de proxies HTTP fornece o endpoint; mantenha o destino estável ao comparar tempos limite.

LimiteEspera abordada
Tempo limite de conexãoEstabelecimento da conexão
Tempo limite de socketInatividade de I/O padrão, incluindo a troca CONNECT
Aquisição no pool / resposta da aplicaçãoOutras etapas configuradas separadamente

Após o CONNECT, o TLS pode precisar do seu próprio limite de configuração por meio da configuração TLS do HttpClient 5. Distinga também inatividade de um prazo total: bytes intermitentes ou trocas de autenticação repetidas podem ampliar o tempo total. Use a política de prazo ou cancelamento suportada pela aplicação para um orçamento para toda a operação.

Artigos relacionados