Apache HttpClient pour Java : guide complet avec exemples

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

Qu'est-ce qu'Apache HttpClient et pourquoi en a-t-on besoin

\n\n

Apache HttpClient est une bibliothèque puissante et flexible en langage Java, conçue pour effectuer des requêtes HTTP. Elle offre aux développeurs un contrôle total sur le processus d'envoi et de réception de données via le protocole HTTP. Contrairement à la classe intégrée java.net.HttpURLConnection, Apache HttpClient propose une API de plus haut niveau, la prise en charge des normes modernes (HTTP/1.1, HTTP/2), une gestion pratique des cookies, de l'authentification, du pool de connexions et des intercepteurs de requêtes.

\n\n

Cette bibliothèque est indispensable dans les scénarios suivants :

\n
    \n
  • Interaction avec une API REST — envoi de requêtes GET, POST, PUT, DELETE vers des services web.
  • \n
  • Parsing de pages web — téléchargement de contenu HTML pour une analyse ultérieure.
  • \n
  • Test d'applications web — simulation de requêtes client.
  • \n
  • Architecture de microservices — échange de données entre services.
  • \n
  • Téléchargement de fichiers — chargement de données binaires (images, archives).
  • \n
\n\n

Installation d'Apache HttpClient

\n\n

Apache HttpClient ne s'installe pas via pip ou npm, car il s'agit d'une bibliothèque pour Java. Pour l'intégrer, on utilise le système de gestion des dépendances Maven ou Gradle. Vous trouverez ci-dessous les instructions pour les deux options.

\n\n

Installation via Maven (pom.xml)

\n

Ajoutez les dépendances suivantes à votre fichier pom.xml :

\n
<dependency>\n    <groupId>org.apache.httpcomponents</groupId>\n    <artifactId>httpclient</artifactId>\n    <version>4.5.14</version>\n</dependency>\n\n<dependency>\n    <groupId>org.apache.httpcomponents</groupId>\n    <artifactId>httpmime</artifactId>\n    <version>4.5.14</version>\n</dependency>
\n\n

Installation via Gradle (build.gradle)

\n

Ajoutez dans la section dependencies :

\n
implementation 'org.apache.httpcomponents:httpclient:4.5.14'\nimplementation 'org.apache.httpcomponents:httpmime:4.5.14'
\n\n

Pour travailler avec HTTP/2 (version 5.x), utilisez :

\n
implementation 'org.apache.httpcomponents.client5:httpclient5:5.3.1'
\n\n

Démarrage rapide : première requête HTTP

\n\n

Créez une classe Java simple et effectuez une requête GET vers une API publique :

\n\n
import org.apache.http.client.methods.CloseableHttpResponse;\nimport org.apache.http.client.methods.HttpGet;\nimport org.apache.http.impl.client.CloseableHttpClient;\nimport org.apache.http.impl.client.HttpClients;\nimport org.apache.http.util.EntityUtils;\n\npublic class QuickStart {\n    public static void main(String[] args) {\n        // 1. Créer un client HTTP\n        try (CloseableHttpClient httpClient = HttpClients.createDefault()) {\n            \n            // 2. Créer une requête GET\n            HttpGet request = new HttpGet("https://jsonplaceholder.typicode.com/posts/1");\n            \n            // 3. Exécuter la requête et obtenir la réponse\n            try (CloseableHttpResponse response = httpClient.execute(request)) {\n                \n                // 4. Extraire le corps de la réponse\n                String body = EntityUtils.toString(response.getEntity());\n                \n                // 5. Afficher le résultat\n                System.out.println("Code de statut : " + response.getStatusLine().getStatusCode());\n                System.out.println("Corps de la réponse : " + body);\n            }\n        } catch (Exception e) {\n            e.printStackTrace();\n        }\n    }\n}
\n\n

Méthodes et fonctions principales d'Apache HttpClient

\n\n

1. HttpGet — exécution d'une requête GET

\n

Description : Crée une requête HTTP GET pour obtenir des données du serveur.

\n

Paramètres :

\n
    \n
  • String uri — l'URL de la requête.
  • \n
\n

<

Recommendations