Constructeur de commande curl

Construire des commandes curl à partir de la méthode, des en-têtes et du corps

Generated cURL Command

curl \
  -L \
  'https://api.example.com/users'

Request

Headers

Authentication

Options

Quick Templates

Le curl Command Builder génère des commandes curl complètes et correctement échappées via un formulaire interactif, vous permettant de configurer la méthode HTTP, les en-têtes, l'authentification, le corps de la requête et les options sans avoir à mémoriser la syntaxe des nombreux flags de curl. Sélectionnez POST, ajoutez un corps JSON et un Bearer token, et obtenez une commande prête à coller comme curl -X POST -H "Authorization: Bearer eyJ..." -H "Content-Type: application/json" -d '{"name":"Alice"}' https://api.example.com/users.

Comprendre curl

curl est le couteau suisse du HTTP. Il est livré avec pratiquement toutes les distributions Linux, toutes les installations macOS, et est disponible sur Windows. Lorsque vous devez tester un endpoint d'API, reproduire un rapport de bug, vérifier des en-têtes de réponse ou vérifier qu'un serveur est joignable, curl est généralement le chemin le plus rapide entre la question et la réponse. Il fonctionne dans n'importe quel terminal, ne nécessite aucune configuration, et produit une sortie que vous pouvez rediriger vers d'autres outils, sauvegarder dans des fichiers ou inclure dans des scripts.

La difficulté de curl réside dans son ampleur. L'outil supporte plus de 200 flags en ligne de commande, couvrant tout, des requêtes GET basiques à l'authentification par certificat client, en passant par le tunneling via proxy et les téléchargements résumables. Pour les tests API quotidiens, vous n'avez besoin que d'une douzaine de ces flags, mais savoir lesquels utiliser et obtenir la bonne syntaxe -- en particulier les règles de guillemets qui diffèrent entre bash, zsh, PowerShell et CMD -- demande de la pratique. Il est facile d'oublier si le flag d'authentification est -u ou --user, si le corps va après -d ou --data, et si les corps JSON nécessitent des guillemets simples ou des guillemets doubles échappés.

Ce builder gère la syntaxe pour vous. Vous remplissez les parties que vous connaissez -- URL, méthode, en-têtes, corps, identifiants d'authentification -- et il génère une commande correctement formatée et échappée pour votre plateforme. Vous pouvez la copier directement dans votre terminal et l'exécuter. Au fil du temps, construire des commandes interactivement et étudier le résultat est l'un des meilleurs moyens d'apprendre la syntaxe de curl, car vous pouvez voir comment chaque champ du formulaire correspond à un flag et comment les guillemets fonctionnent pour votre shell.

Comment construire une commande curl

  1. Saisissez l'URL cible pour votre requête HTTP.
  2. Sélectionnez la méthode HTTP (GET, POST, PUT, PATCH, DELETE, HEAD, OPTIONS).
  3. Ajoutez des en-têtes personnalisés (par exemple, Content-Type: application/json, Authorization: Bearer <token>).
  4. Définissez le corps de la requête pour les requêtes POST/PUT/PATCH (JSON, données de formulaire ou texte brut).
  5. Configurez les options comme le suivi des redirections, le timeout ou la sortie verbeuse.
  6. Copiez la commande générée pour votre shell (Unix/macOS ou Windows PowerShell).

Exemples de commandes curl

Requête GET simple

curl https://api.example.com/users/42

Requête POST avec corps JSON

curl -X POST https://api.example.com/users \
  -H "Content-Type: application/json" \
  -d '{"name": "Alice", "email": "[email protected]", "role": "admin"}'

Requête authentifiée avec Bearer Token

curl https://api.example.com/account \
  -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."

Requête PUT avec Basic Auth

curl -X PUT https://api.example.com/settings \
  -u "admin:password123" \
  -H "Content-Type: application/json" \
  -d '{"notifications": true, "theme": "dark"}'

POST de données de formulaire (URL-Encoded)

curl -X POST https://example.com/login \
  -d "username=alice&password=secret123"

Requête avec plusieurs options

curl -X DELETE https://api.example.com/posts/99 \
  -H "Authorization: Bearer eyJhbGci..." \
  -H "X-Request-ID: req-abc-123" \
  -L \
  --max-time 30 \
  -w "\n%{http_code}\n"

Quand utiliser le curl Command Builder

  • Test d'API en développement -- Construisez rapidement des requêtes pour tester des endpoints sans écrire de code client ni passer à un outil graphique.
  • Génération d'exemples pour la documentation -- Construisez des commandes curl correctes et prêtes à copier-coller pour la documentation d'API et les fichiers README.
  • Création de rapports de bugs reproductibles -- Générez une commande curl autonome qui reproduit un problème, facilitant les tests par d'autres développeurs.
  • Apprentissage de la syntaxe curl -- Construisez des commandes interactivement et étudiez les flags générés pour apprendre les options de curl par l'exemple.
  • Génération de commandes multi-plateformes -- Obtenez des commandes correctement échappées pour les shells Unix/macOS (guillemets simples) et Windows PowerShell (guillemets doubles échappés).
  • Partage de cas de test API -- Produisez une commande autonome que quiconque disposant de curl peut exécuter pour vérifier le comportement.

Référence des flags curl

Flags courants

FlagForme longueRôleExemple
-X--requestDéfinir la méthode HTTP-X POST
-H--headerAjouter un en-tête personnalisé-H "Content-Type: application/json"
-d--dataEnvoyer le corps de la requête-d '{"key": "value"}'
-u--userAuthentification Basic-u "user:pass"
-L--locationSuivre les redirections-L
-o--outputÉcrire la sortie dans un fichier-o response.json
-s--silentSupprimer la barre de progression-s
-v--verboseAfficher les en-têtes requête/réponse-v
-k--insecureIgnorer la vérification TLS-k
-w--write-outFormat de sortie personnalisé-w "%{http_code}"

Flags de timeout et de retry

FlagRôleExemple
--max-timeLimite de temps totale en secondes--max-time 30
--connect-timeoutTimeout de connexion en secondes--connect-timeout 5
--retryNombre de tentatives en cas d'échec--retry 3
--retry-delaySecondes entre les tentatives--retry-delay 2

Flags de corps et de contenu

FlagRôleQuand l'utiliser
-d / --dataEnvoyer des données comme corps de requêteJSON, données de formulaire, texte brut
--data-rawEnvoyer des données sans interpréter @Quand le corps contient des caractères @
--data-binaryEnvoyer des données binaires telles quellesUpload de fichiers, payloads binaires
-F / --formEnvoyer des données multipartUpload de fichiers avec champs de formulaire
--data-urlencodeEncoder en URL les données avant envoiDonnées de formulaire avec caractères spéciaux

Échappement et guillemets selon le shell

Le builder gère les différences délicates entre les shells :

Unix/macOS (bash, zsh) -- Utilise les guillemets simples pour les corps JSON afin d'éviter l'interprétation de $ et ! :

curl -d '{"price": "$9.99"}' https://api.example.com/order

Windows PowerShell -- Utilise les guillemets doubles échappés car PowerShell ne supporte pas l'interpolation des chaînes entre guillemets simples de la même manière :

curl -d "{\"price\": \"$9.99\"}" https://api.example.com/order

Windows CMD -- Utilise les guillemets doubles avec des guillemets internes échappés :

curl -d "{\"price\": \"$9.99\"}" https://api.example.com/order

Conseils pratiques pour utiliser curl

L'une des fonctionnalités les plus utiles mais sous-utilisées de curl est le flag -w (write-out). Il vous permet d'afficher des informations spécifiques sur la requête après son exécution, comme le code de statut HTTP, le temps total, le temps de résolution DNS ou la taille de la réponse. Pour des tests API rapides, curl -s -o /dev/null -w "%{http_code}\n" https://api.example.com/health vous donne uniquement le code de statut sans afficher le corps -- parfait pour les scripts de health check. Vous pouvez aussi utiliser -w "%{time_total}\n" pour mesurer les temps de réponse en ligne de commande sans installer d'outils supplémentaires.

Lors du débogage de problèmes SSL/TLS, le flag -v (verbose) de curl affiche l'intégralité de la poignée de main TLS, y compris la chaîne de certificats, la version du protocole et la suite de chiffrement. C'est inestimable pour diagnostiquer les erreurs de certificat, tester la rotation des certificats ou vérifier qu'un serveur supporte une version TLS spécifique. Associez -v avec --tlsv1.2 ou --tlsv1.3 pour forcer une version TLS spécifique et tester la compatibilité.

Pour les workflows de test d'API, envisagez de sauvegarder les commandes curl fréquemment utilisées comme scripts shell ou alias. Une commande comme curl -s -H "Authorization: Bearer $API_TOKEN" -H "Content-Type: application/json" https://api.example.com/v1/ est fastidieuse à taper à répétition. La sauvegarder comme fonction ou alias avec l'URL de base et les en-têtes communs signifie que vous n'avez plus qu'à ajouter le endpoint spécifique et le corps pour chaque test. De nombreux développeurs maintiennent une collection de commandes curl dans un fichier requests.sh dans leur projet, qui sert également de documentation vivante de l'API.

Questions fréquentes

Comment envoyer un fichier comme corps de requête ?

Utilisez le préfixe @ avec -d pour lire le corps depuis un fichier : curl -X POST -d @payload.json -H "Content-Type: application/json" https://api.example.com/upload. Pour un upload multipart de fichier, utilisez -F "[email protected]".

Quelle est la différence entre -d et -F ?

-d envoie le corps comme un bloc unique (généralement application/x-www-form-urlencoded ou application/json). -F envoie en multipart/form-data, conçu pour l'upload de fichiers et les champs de formulaire mixtes. Utilisez -F lorsque vous devez uploader des fichiers accompagnés de données de formulaire.

Dois-je utiliser -k / --insecure pour ignorer la vérification TLS ?

Uniquement dans les environnements de développement avec des certificats auto-signés. N'utilisez jamais -k dans les scripts de production ou lors de l'envoi de credentials, car cela désactive la vérification des certificats et expose la connexion aux attaques de type man-in-the-middle.

Comment voir les en-têtes de réponse avec le corps ?

Utilisez -i (include) pour afficher les en-têtes de réponse avant le corps, ou -v (verbose) pour voir à la fois les en-têtes de requête et de réponse ainsi que les détails de la poignée de main TLS. Pour voir uniquement les en-têtes sans le corps, utilisez -I (requête HEAD) ou -o /dev/null -v pour ignorer le corps tout en affichant la sortie verbeuse.

curl peut-il suivre les redirections automatiquement ?

Oui. Utilisez -L (ou --location) pour suivre les redirections 3xx. Par défaut, curl s'arrête à la première redirection et affiche la réponse de redirection. Avec -L, il suit la chaîne jusqu'à atteindre une réponse finale. Vous pouvez limiter le nombre de redirections avec --max-redirs 5.

Comment gérer les cookies dans curl ?

Utilisez -b pour envoyer des cookies et -c pour sauvegarder les cookies reçus du serveur. Par exemple, curl -c cookies.txt https://example.com/login -d "user=alice" sauvegarde les cookies de connexion, et curl -b cookies.txt https://example.com/dashboard les renvoie. C'est utile pour tester les flux d'authentification qui reposent sur des cookies de session.

Outils associés

IPparse•Outils de calcul réseau et sous-réseau gratuits

© 2026 IPparse. All tools run locally in your browser.

100% Privacy-First • No Data Collected