HttpClient 4 - Cancelar solicitação

HttpClient 4 - Cancelar solicitação

1. Visão geral

Este tutorial rápido mostra comocancel a HTTP Request with the Apache HttpClient 4.

Isso é especialmente útil para solicitações potencialmente demoradas ou para arquivos de download grandes que, de outra forma, consumiriam desnecessariamente largura de banda e conexões.

Se você quiser se aprofundar e aprender outras coisas legais que você pode fazer com o HttpClient - vá parathe main HttpClient tutorial.

2. Abortar um pedido GET

Para abortar uma solicitação em andamento, o cliente pode simplesmente usar:

request.abort();

Isso garantirá que o cliente não precise consumir todo o corpo da solicitação para liberar a conexão:

@Test
public void whenRequestIsCanceled_thenCorrect()
  throws ClientProtocolException, IOException {
    HttpClient instance = HttpClients.custom().build();
    HttpGet request = new HttpGet(SAMPLE_URL);
    HttpResponse response = instance.execute(request);

    try {
        System.out.println(response.getStatusLine());
        request.abort();
    } finally {
        response.close();
    }
}

3. Conclusão

Este artigo ilustrou como cancelar uma solicitação em andamento com o cliente HTTP. Outra opção para interromper solicitações de longa execução é ter certeza de que serãotime out.

A implementação de todos esses exemplos e fragmentos de códigocan be found in my github project - este é um projeto baseado no Eclipse, portanto, deve ser fácil de importar e executar como está.