tigtools

Convertisseur cURL en code

Collez une commande curl, par exemple copiée depuis les outils de développement de votre navigateur ou une documentation d’API, et obtenez le code équivalent dans le langage de votre choix.

Fonctionne dans votre navigateur Sans inscription

Langue

Mode d’emploi

  1. Copiez une requête au format curl, par exemple depuis les outils de développement de votre navigateur (onglet Réseau, clic droit, Copier comme cURL) ou depuis une documentation d’API.
  2. Collez-la dans la zone de texte. Les continuations de ligne avec \ sont acceptées.
  3. Choisissez JavaScript fetch, Node.js axios, Python requests ou PHP cURL.
  4. Lisez les éventuelles notes sous le code, puis copiez ou téléchargez le résultat.

Fonctionnement

Le convertisseur commence par découper la commande en mots comme le ferait un shell POSIX : les guillemets simples, les guillemets doubles avec échappements par barre oblique inverse, les chaînes $'…' et les continuations de ligne par barre oblique inverse sont compris. Les variables shell telles que $TOKEN ne sont pas développées ; elles restent sous forme de texte.

Options curl prises en charge : l'URL (ou --url), -X/--request, -H/--header, -d/--data, --data-ascii, --data-raw, --data-binary, --data-urlencode, --json, -F/--form et --form-string (champs et envois de fichiers @file avec ;type=), -u/--user, -G/--get, -I/--head, -A/--user-agent, -e/--referer, -b/--cookie (chaînes de cookies), -L/--location et --compressed. Les options courtes peuvent être combinées, comme dans -sSL, et les valeurs peuvent être accolées, comme dans -XPOST.

Les règles suivent curl : plusieurs valeurs -d sont jointes avec & ; les données font de la requête une requête POST, sauf indication contraire de -X ou -G ; -G ajoute les données à l'URL sous forme de chaîne de requête ; --json définit les en-têtes Content-Type et Accept à application/json. Lorsque le corps est du JSON et que l'en-tête Content-Type l'indique, le code envoie un véritable objet (json= en Python, un tableau avec json_encode en PHP) au lieu d'une chaîne échappée. Pour les formulaires multipart, l'en-tête Content-Type est laissé à la bibliothèque afin que le délimiteur soit correct.

-k/--insecure est ignoré volontairement et une note l'explique. Les options qui ne modifient que la sortie de curl elle-même (-s, -S, -v, -i, -o, --fail et similaires) sont ignorées avec une note. Toute autre option produit une erreur claire qui la nomme, plutôt que du code qui ferait silencieusement autre chose. Une différence subsiste : curl ne suit les redirections qu'avec -L, tandis que fetch, axios et requests les suivent par défaut ; le code PHP ne les suit que si -L a été fourni.

L'outil ne fait qu'écrire du code. Il n'envoie jamais la requête, donc les jetons et mots de passe de la commande ne sont utilisés nulle part.

Exemples

Reproduire une requête de navigateur en Python

Copiez un appel API qui échoue depuis l’onglet Réseau de Chrome au format cURL et convertissez-le en code Python requests. Les en-têtes, les cookies et le corps JSON sont repris, ce qui vous permet de reproduire le bogue dans un script.

Utiliser la documentation d’une API dans Node.js

Une référence d’API affiche « curl -u key: https://api.example.com/v1/charges -d amount=2000 -d currency=eur ». La version axios utilise auth: { username: "key", password: "" } et un corps encodé en formulaire.

Téléversement d’un fichier en PHP

« curl -F 'file=@invoice.pdf;type=application/pdf' -F 'note=March' https://x.io/upload » devient CURLOPT_POSTFIELDS avec new CURLFile('invoice.pdf', 'application/pdf') et le champ note.

Foire aux questions

Cet outil envoie-t-il ma requête ?

Non. Il se contente d’analyser le texte de la commande et de générer du code. Aucune requête n’est effectuée ; les clés API ou les cookies présents dans la commande ne sont donc ni utilisés ni stockés.

Pourquoi l’option -k/--insecure n’est-elle pas convertie ?

Désactiver la vérification des certificats expose la connexion à l’interception. Le code généré conserve les vérifications ; si le certificat d’un serveur n’est pas reconnu, corrigez plutôt le certificat ou le magasin de confiance.

Pourquoi est-ce que j’obtiens « option non prise en charge » ?

Le convertisseur ne traduit que les options dont il peut reproduire exactement le comportement. Les proxys, certificats clients, fichiers de cookies et options similaires sont rejetés afin de ne pas générer de code qui se comporte différemment de curl.

Cela fonctionne-t-il avec les commandes Windows cmd ?

Les commandes copiées au format « cURL (bash) » fonctionnent le mieux. Windows cmd utilise ^ pour la continuation de ligne et un autre système de guillemets ; le ^ en fin de ligne est accepté, mais d’autres séquences d’échappement cmd peuvent ne pas l’être.

Confidentialité

La commande est analysée uniquement dans votre navigateur et aucune requête n'est envoyée. Rien n'est téléversé, stocké ou inclus dans les statistiques.