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.

","description":"Indique la m\u00e9thode HTTP (GET, POST, PUT, PATCH, DELETE, etc.). Si elle est omise, GET est utilis\u00e9 sans corps et POST lorsqu'un corps est pr\u00e9sent."},"header":{"flag":"-H, --header
","description":"Ajoute un en-t\u00eate de requ\u00eate. R\u00e9p\u00e9tez -H pour en ajouter plusieurs."},"data":{"flag":"-d, --data ","description":"Envoie un corps de requ\u00eate. Si -X n'est pas pr\u00e9cis\u00e9, l'envoi se fait automatiquement en POST avec Content-Type: application\/x-www-form-urlencoded."},"user":{"flag":"-u, --user ","description":"Indique le nom d'utilisateur et le mot de passe pour l'authentification Basic au format \"user:password\"."},"insecure":{"flag":"-k, --insecure","description":"Ignore la v\u00e9rification du certificat SSL. Destin\u00e9 aux environnements de d\u00e9veloppement utilisant des certificats auto-sign\u00e9s. D\u00e9conseill\u00e9 en production."},"location":{"flag":"-L, --location","description":"Suit automatiquement la destination indiqu\u00e9e par l'en-t\u00eate Location lorsque le serveur renvoie une redirection 3xx."},"verbose":{"flag":"-v, --verbose","description":"Affiche l'\u00e9change d\u00e9taill\u00e9 de la requ\u00eate et de la r\u00e9ponse, en-t\u00eates compris, sur la sortie d'erreur standard. Utile pour le d\u00e9bogage."},"compressed":{"flag":"--compressed","description":"Ajoute un en-t\u00eate Accept-Encoding, demandant et d\u00e9compressant automatiquement les r\u00e9ponses compress\u00e9es avec gzip ou des formats similaires."},"output":{"flag":"-o, --output ","description":"Enregistre le corps de la r\u00e9ponse dans le fichier indiqu\u00e9 au lieu de la sortie standard."},"form":{"flag":"-F, --form ","description":"Envoie des donn\u00e9es de formulaire ou des fichiers au format multipart\/form-data. Indiquez \"@chemin_du_fichier\" pour l'envoi de fichiers."}}}'>

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 -d est 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 -k gé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

Non. Cet outil se contente de construire la chaîne de commande et n'envoie jamais de véritable requête HTTP. La requête n'est envoyée que lorsque vous copiez la commande générée dans un terminal et l'exécutez vous-même. Pour envoyer réellement la requête et consulter le résultat, utilisez notre outil complémentaire, le « Testeur d'API REST ».

Oui. En saisissant la méthode, l'URL, les en-têtes et le corps d'une requête construite dans Postman, cet outil génère une commande curl que vous pouvez copier-coller directement. Pratique pour l'insérer dans des scripts CI/CD ou de la documentation.

C'est techniquement possible, mais il faut être prudent. Si curl reçoit -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.

Non. Toutes les informations d'authentification que vous saisissez sont traitées entièrement par JavaScript dans votre navigateur et ne sont jamais envoyées au serveur de toolbase.cc. Elles n'atteignent l'API réelle que lorsque vous exécutez vous-même la commande générée dans votre propre environnement.

« -k (--insecure) » ignore la vérification du certificat SSL et ne doit servir que de solution de contournement temporaire pour les environnements de développement local utilisant des certificats auto-signés. Son usage en production ou pour des échanges contenant des informations sensibles n'est pas recommandé, car il expose à un risque d'attaque de l'homme du milieu.
ツールくん

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.