Générateur de commande curl
Indiquez la méthode HTTP, l'URL, les en-têtes, le corps et le mode d'authentification dans le formulaire pour générer une commande curl prête à copier et exécuter. Aucune requête n'étant réellement envoyée, les restrictions CORS ne s'appliquent jamais.
Options curl les plus courantes
| Option | Description |
|---|---|
| -X, --request <method> | Indique la méthode HTTP (GET, POST, PUT, PATCH, DELETE, etc.). Si elle est omise, GET est utilisé sans corps et POST lorsqu'un corps est présent. |
| -H, --header <header> | Ajoute un en-tête de requête. Répétez -H pour en ajouter plusieurs. |
| -d, --data <data> | Envoie un corps de requête. Si -X n'est pas précisé, l'envoi se fait automatiquement en POST avec Content-Type: application/x-www-form-urlencoded. |
| -u, --user <user:password> | Indique le nom d'utilisateur et le mot de passe pour l'authentification Basic au format "user:password". |
| -k, --insecure | Ignore la vérification du certificat SSL. Destiné aux environnements de développement utilisant des certificats auto-signés. Déconseillé en production. |
| -L, --location | Suit automatiquement la destination indiquée par l'en-tête Location lorsque le serveur renvoie une redirection 3xx. |
| -v, --verbose | Affiche l'échange détaillé de la requête et de la réponse, en-têtes compris, sur la sortie d'erreur standard. Utile pour le débogage. |
| --compressed | Ajoute un en-tête Accept-Encoding, demandant et décompressant automatiquement les réponses compressées avec gzip ou des formats similaires. |
| -o, --output <file> | Enregistre le corps de la réponse dans le fichier indiqué au lieu de la sortie standard. |
| -F, --form <name=content> | Envoie des données de formulaire ou des fichiers au format multipart/form-data. Indiquez "@chemin_du_fichier" pour l'envoi de fichiers. |
Astuces
- La commande générée peut être collée directement dans un terminal, un script shell ou un fichier de configuration CI/CD et exécutée telle quelle. Toutes les valeurs sont déjà échappées avec des guillemets simples.
- Un avertissement s'affiche si vous saisissez un corps alors que la méthode est encore GET. En effet, curl envoie automatiquement la requête en POST lorsque
-dest utilisé sans-X; cet avertissement permet d'éviter un comportement inattendu. - En cochant « Ajouter automatiquement Content-Type: application/json », l'en-tête Content-Type, souvent oublié lors de l'appel d'une API JSON, est ajouté automatiquement.
- Les valeurs saisies pour l'authentification Basic comme pour le jeton Bearer sont traitées entièrement dans votre navigateur et ne sont jamais envoyées à un serveur.
- Le
-kgénéré (ignorer la vérification du certificat) n'est qu'une solution de contournement temporaire réservée au développement local avec des certificats auto-signés. Évitez de l'utiliser durablement face à des API de production.
Questions fréquentes
-d (données du corps) sans l'option -X, il envoie automatiquement la requête en POST. Dans le cas rare où vous devez conserver GET tout en envoyant un corps, ajoutez manuellement -X GET à la commande générée.
Anecdote — pourquoi curl est l'outil que tout le monde utilise sans presque jamais le connaître
curl est un outil en ligne de commande permettant de transférer des données via des URL, créé en 1996 par l'ingénieur suédois Daniel Stenberg. Il est né d'un petit script destiné à récupérer des taux de change pour un bot de discussion IRC, avant de devenir un projet gigantesque prenant en charge plus de 25 protocoles, dont HTTP, FTP et SMTP.
curl est considéré comme l'un des logiciels les plus utilisés au monde. Il est intégré dans pratiquement tous les appareils connectés à internet — smartphones, voitures, appareils électroménagers, consoles de jeux et même sondes spatiales (il a notamment été utilisé lors de missions de la NASA vers Mars) — avec un parc installé estimé à plusieurs dizaines de milliards d'unités. Malgré cette omniprésence, il reste un exemple classique d'infrastructure invisible, quasiment inconnue en dehors des cercles de développeurs.
En 2019, Stenberg a été distingué par la Linux Foundation pour ses contributions aux technologies fondamentales du Web. Il demeure aujourd'hui le mainteneur principal à la tête du développement de curl, réputé pour avoir su préserver avec soin la compatibilité ascendante pendant plus de vingt ans.
Même aujourd'hui, alors que des outils graphiques comme Postman se sont largement répandus, les commandes curl continuent d'être utilisées dans les README, la documentation officielle et les étapes de vérification des API. La raison est simple : curl ne nécessite aucune installation et est préinstallé sur presque tous les environnements Linux et macOS, ce qui permet d'exécuter une seule commande sur-le-champ et d'en partager le résultat, avec un niveau de reproductibilité difficile à égaler.