Mode d'emploi
- Collez une commande curl dans Commande curl. Gardez les guillemets autour des valeurs qui contiennent des espaces.
- 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.
- Copiez le Code Python dans votre script, avec la bibliothèque requests installée, ou le Code JavaScript fetch dans une page.
- 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
- curl manual (en anglais) : -X, -H, -d, -G, -I, -u, -A, -b, -L, --json and --basic
- The Open Group (en anglais) : POSIX Shell Command Language, section 2.2 Quoting
- Requests (en anglais) : API reference for request, get, post and head
Chiffres et texte vérifiés pour la dernière fois le mardi 10 novembre 2026.