Convertisseur cURL en Python

Collez une commande curl depuis votre terminal, un manuel ou le menu de copie d'un navigateur. Vous obtenez du code Python qui fait la même requête avec la bibliothèque requests, et la liste de ce que chaque option est devenue.

Gratuit Fonctionne dans votre navigateur Vérifié le mardi 10 novembre 2026

Une seule commande. Les guillemets et les sauts de ligne écrits avec une barre oblique inverse sont lus comme un shell les lit. Ne collez pas un mot de passe ou un jeton réel que vous voulez garder privé.

Résultat

Code Python — Copiez-le dans un script. Il faut installer la bibliothèque requests.
Code Python
Code JavaScript fetch

Ce que la traduction a fait

Cet outil fonctionne dans votre navigateur. Ce que vous saisissez ne nous est pas envoyé.

Mode d'emploi

  1. Collez une commande curl dans Commande curl. Gardez les guillemets autour des valeurs qui contiennent des espaces.
  2. Lisez Ce que la traduction a fait pour vérifier chaque option : la méthode, la chaîne de requête, le corps et les en-têtes.
  3. Copiez le Code Python dans votre script, avec la bibliothèque requests installée, ou le Code JavaScript fetch dans une page.
  4. Si une note ou une erreur apparaît, corrigez d'abord la commande, puis copiez à nouveau le code.

Quelles options curl l'outil lit

L'outil lit les options que la plupart des requêtes utilisent. Chacune modifie l'appel Python d'une façon connue, et toute autre option arrête la traduction avec un message : rien n'est donc deviné.

  • -X et --request fixent la méthode, telle qu'écrite. Le manuel précise qu'elle ne change que le mot envoyé.
  • -H et --header ajoutent des en-têtes. Une ligne comme X-Flag; envoie une valeur vide, et -H avec une valeur vide après les deux-points supprime un en-tête.
  • -d, --data, --data-raw et --data-binary fixent le corps. Plusieurs valeurs -d sont réunies avec &. Avec -G, elles deviennent la chaîne de requête.
  • -G et --get, -I et --head, et -L et --location changent la méthode ou la gestion des redirections.
  • -u et --user, -A et --user-agent, et -b et --cookie fixent le couple d'authentification, l'en-tête User-Agent et l'en-tête Cookie.
  • --json envoie la valeur comme corps et fixe les en-têtes JSON, que -H peut remplacer.

Comment la commande est lue

Le texte est découpé en mots comme le fait un shell POSIX. Les guillemets simples conservent chaque caractère. À l'intérieur de guillemets doubles, une barre oblique inverse n'échappe que les caractères $, l'accent grave, le guillemet double, la barre oblique inverse et le saut de ligne. Une barre oblique inverse en fin de ligne la relie à la suivante. Les expansions du shell, comme $HOME, ne sont pas exécutées : ces valeurs sont donc signalées comme erreurs.

Ce que l'outil ne vérifie pas

  • Il n'envoie pas la requête : il ne peut donc pas dire si le serveur l'accepte.
  • Un navigateur applique ses règles d'origine croisée à fetch. Une requête vers un autre site peut y être bloquée, même lorsque la même commande fonctionne dans un terminal. L'outil ne teste pas cela.
  • Il n'ouvre pas les fichiers désignés par @, et il ne lit pas les fichiers de cookies.
  • Il n'écrit que du Python. Le code utilise la bibliothèque requests, que vous installez séparément.

Exemple détaillé : un PUT avec un corps JSON

La commande envoie un PUT à un élément, avec un corps JSON. La méthode vient de -X, l'en-tête de -H et le corps de -d. L'appel Python a les mêmes trois parties, et la liste des étapes indique quelle option a donné quelle valeur.

Option curl Argument Python Valeur dans le code
-X PUT method 'PUT'
-H 'Content-Type: application/json' headers 'Content-Type': 'application/json'
-d '{"name": "Ada"}' data '{"name": "Ada"}'

Questions fréquentes

Pourquoi le code utilise-t-il requests et non une autre bibliothèque ?

requests est la bibliothèque Python vers laquelle l'outil traduit, et sa fonction request prend en un seul appel une méthode, une URL, des en-têtes, des données et une authentification. Le même appel fonctionne pour toutes les méthodes que la commande indique.

Pourquoi ma requête part-elle en POST alors que je n'ai pas écrit -X ?

Le manuel de curl indique que -d utilise POST, et --json envoie aussi un POST. Écrivez -X avec la méthode voulue, comme -X PUT, pour changer le mot envoyé.

Que fait -G dans la traduction ?

Il place les données de -d dans l'URL sous forme de chaîne de requête et fait de la requête un GET, comme le décrit le manuel. L'appel Python a alors l'URL complète et pas de corps.

Les mots de passe de ma commande sont-ils envoyés quelque part ?

Non. La commande est lue dans votre navigateur, et rien n'est enregistré ni envoyé. Utilisez tout de même un mot de passe ou un jeton de test sur une page que vous ne contrôlez pas.

Pourquoi la sortie parle-t-elle des redirections ?

curl ne suit les redirections qu'avec -L. requests les suit par défaut pour toutes les méthodes, et fetch aussi : la note indique donc comment s'aligner sur un appel curl sans -L.

L'outil peut-il lire des données dans un fichier désigné par @ ?

Non. L'outil n'ouvre pas de fichiers : une valeur @ est donc signalée comme erreur. Collez les données elles-mêmes dans la commande.

Sources

Chiffres et texte vérifiés pour la dernière fois le mardi 10 novembre 2026.

Nous utilisons des cookies nécessaires au fonctionnement du site. Avec votre accord, Google utilise aussi des cookies publicitaires pour afficher des annonces personnalisées. Si vous les refusez, vous voyez toujours des annonces, mais elles ne sont pas personnalisées.