HttpClient 4 - Annuler la demande

HttpClient 4 - Demande d'annulation

1. Vue d'ensemble

Ce tutoriel rapide montre commentcancel a HTTP Request with the Apache HttpClient 4.

Ceci est particulièrement utile pour les requêtes potentiellement longues ou les fichiers à télécharger volumineux qui consommeraient inutilement de la bande passante et des connexions.

Si vous voulez approfondir et apprendre d'autres choses intéressantes que vous pouvez faire avec HttpClient, rendez-vous surthe main HttpClient tutorial.

2. Annuler une demande GET

Pour abandonner une demande en cours, le client peut simplement utiliser:

request.abort();

Cela garantira que le client n'aura pas à consommer tout le corps de la demande pour libérer la connexion:

@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. Conclusion

Cet article explique comment annuler une demande en cours avec le client HTTP. Une autre option pour arrêter les demandes de longue durée si vous voulez vous assurer qu'elles seronttime out.

L'implémentation de tous ces exemples et extraits de codecan be found in my github project - il s'agit d'un projet basé sur Eclipse, il devrait donc être facile à importer et à exécuter tel quel.