How to Send HTTP Headers With cURL: A Comprehensive Guide with Examples
Maîtrisez l'envoi et la réception d'en-têtes HTTP en utilisant cURL avec ce guide complet. Explorez des exemples, des en-têtes personnalisés et des conseils de dépannage.
Dans cet article 11 sections
- Prérequis
- Syntaxe de base de cURL
- Exemple 1 : Envoi d’une requête GET avec en-têtes personnalisés
- Exemple 2 : Envoi d’une requête POST avec données JSON
- Exemple 3 : Définition de plusieurs en-têtes
- Exemple 4 : Envoi de cookies
- Exemple 5 : Suivre les redirections
- Exemple 6 : Envoyer un User-Agent personnalisé
- Exemple 7 : Envoyer des en-têtes de requête sans données
- Exemple 8 : Envoyer une authentification basique
- Exemple 9 : Débogage et mode détaillé
Envoyer des en-têtes HTTP avec cURL est une compétence fondamentale pour quiconque travaille avec des API ou des services web. Les en-têtes HTTP communiquent des informations essentielles sur votre requête, telles que le type de contenu, l’autorisation, et bien d’autres. cURL, un outil en ligne de commande puissant pour effectuer des requêtes HTTP, vous permet de personnaliser et d’envoyer ces en-têtes sans effort. Dans ce guide, nous vous guiderons à travers le processus d’envoi d’en-têtes HTTP avec cURL, complété par une variété d’exemples pratiques.

Prérequis#
Avant de nous plonger dans les exemples, assurez-vous que cURL est installé sur votre système. Vous pouvez vérifier s’il est installé en exécutant :
curl --version
S’il n’est pas installé, vous pouvez le télécharger à partir du site officiel de cURL.
Syntaxe de base de cURL#
La syntaxe de base pour envoyer une requête HTTP avec cURL est :
curl [options] [URL]
Pour inclure des en-têtes HTTP dans votre requête, vous pouvez utiliser l’option -H ou –header suivie des informations d’en-tête.
Exemple 1 : Envoi d’une requête GET avec en-têtes personnalisés#
Commençons par une simple requête GET vers une API hypothétique, en incluant un en-tête personnalisé. Supposons que vous souhaitiez inclure un en-tête « Authorization » avec votre clé API.
curl -H "Authorization: Bearer YOUR_API_KEY" https://api.example.com/resource
Remplacez YOUR_API_KEY par votre clé API réelle.
Exemple 2 : Envoi d’une requête POST avec données JSON#
Dans cet exemple, nous enverrons une requête POST avec une charge utile JSON et un en-tête de type de contenu personnalisé.
curl -X POST -H "Content-Type: application/json" -d '{"name": "John", "email": "[email protected]"}' https://api.example.com/users
Cette commande spécifie la méthode de requête comme POST (-X POST), définit le type de contenu sur JSON (-H « Content-Type: application/json »), et inclut les données JSON avec -d.
Exemple 3 : Définition de plusieurs en-têtes#
Vous pouvez inclure plusieurs en-têtes dans une seule requête cURL. Ici, nous envoyons une requête avec les en-têtes « Authorization » et « User-Agent ».
curl -H "Authorization: Bearer YOUR_API_KEY" -H "User-Agent: MyClient/1.0" https://api.example.com/resource
Exemple 4 : Envoi de cookies#
Pour envoyer des cookies avec votre requête, utilisez l’option -b ou –cookie suivie des données de cookie.
curl -b "session=12345; preferences=darkmode" https://api.example.com/dashboard
Cet exemple envoie deux cookies : « session » et « preferences ».
Exemple 5 : Suivre les redirections#
Par défaut, cURL ne suit pas les redirections HTTP. Pour activer le suivi des redirections, utilisez l’option -L ou –location.
curl -L https://example.com
Cette commande suivra les redirections et affichera le contenu de la page finale.
Exemple 6 : Envoyer un User-Agent personnalisé#
Vous pouvez définir un en-tête User-Agent personnalisé pour identifier votre requête.
curl -H "User-Agent: MyCustomApp/1.0" https://api.example.com/resource
Les en-têtes User-Agent personnalisés sont utiles lors de l’interaction avec des API qui nécessitent des agents utilisateurs spécifiques.
Exemple 7 : Envoyer des en-têtes de requête sans données#
Si vous devez envoyer un en-tête sans corps de requête, vous pouvez utiliser l’option -I ou –head.
curl -I https://api.example.com/resource
Cette commande envoie une requête HEAD, qui récupère uniquement les en-têtes et non le contenu réel.
Exemple 8 : Envoyer une authentification basique#
Pour envoyer les identifiants d’authentification HTTP Basic, vous pouvez inclure un en-tête « Authorization » avec votre nom d»utilisateur et votre mot de passe codés en Base64.
curl -H "Authorization: Basic BASE64_ENCODED_CREDENTIALS" https://api.example.com/resource
Remplacez BASE64_ENCODED_CREDENTIALS par votre nom d’utilisateur et votre mot de passe codés en Base64 (par exemple, username:password).
Exemple 9 : Débogage et mode détaillé#
Lors du dépannage de problèmes ou de l’inspection de la requête et de la réponse HTTP, vous pouvez utiliser le mode détaillé de cURL avec l’option -v ou –verbose.
curl -v https://api.example.com/resource
Cela affichera des informations détaillées sur la requête et la réponse, y compris les en-têtes.
L’envoi d’en-têtes HTTP avec cURL est une compétence cruciale pour travailler avec des services web et des API. Avec les exemples fournis dans ce guide, vous pouvez personnaliser vos demandes, gérer l’authentification, envoyer des cookies, et bien plus. À mesure que vous familiariserez avec les capacités de cURL, vous serez bien équipé pour interagir efficacement avec diverses services web.
