Menu

Convertisseur cURL

Convertissez n'importe quelle commande curl en fetch, axios, Python requests, Go, PHP, et plus.

Dernière mise à jour

Collez la commande curlCollez une commande curl pour commencer
JavaScript (fetch)
Collez une commande curl ci-dessus pour générer du code dans 12 langages.

C'est quoi un convertisseur cURL ?

Un convertisseur cURL transforme une commande curl — le format que produisent toutes les docs d'API, les exports Postman et les assistants IA — en code prêt à coller dans votre vrai langage de programmation. Les en-têtes, les chaînes de requête, les corps JSON, les uploads multipart, l'auth basique et les cookies sont tous transférés, vous n'avez donc pas à traduire la requête à la main.

curl est le moyen universel de décrire une requête HTTP, mais en production vous *exécutez* rarement curl. Vous lancez du JavaScript fetch, du Python requests, le net/http de Go ou ce que votre stack utilise. Cet outil fait le pont : collez le curl, cliquez sur un onglet, copiez le code.

Tout tourne en local dans votre navigateur. Votre commande curl, vos en-têtes et vos tokens ne quittent jamais votre machine — pratique quand vous collez des commandes qui contiennent de vrais bearer tokens ou cookies de session.

Ce que vous allez apprendre en convertissant

  • Les flags curl correspondent à des concepts précis dans chaque client HTTP : -H est un en-tête de requête, -d est un corps, -X est la méthode, -u est l'auth basique, -F est un champ de formulaire multipart.
  • Si curl voit un corps (-d, --data, -F) et aucun -X, la méthode par défaut est POST — le même comportement par défaut que la plupart des clients, donc un -X absent reste un POST dans la sortie.
  • Les corps JSON diffèrent des corps de formulaire. Content-Type: application/json signifie que le corps est envoyé tel quel ; application/x-www-form-urlencoded veut dire que les paires clé/valeur sont jointes avec &.

Comment convertir curl en code, étape par étape

  1. Collez votre commande curl

    Déposez la commande complète — y compris les \ de continuation de ligne copiés depuis des docs — dans la zone de saisie. Le parser normalise automatiquement les guillemets typographiques et les marqueurs de prompt PowerShell.

  2. Choisissez le langage cible

    Les onglets couvrent JavaScript fetch, TypeScript, Node axios, Python requests, Python httpx, Go, PHP, Ruby, Java HttpClient, C# HttpClient, HTTPie et PowerShell. Basculer d'un onglet à l'autre est gratuit — le parsing ne s'exécute qu'une fois.

  3. Inspectez la requête analysée

    Ouvrez le panneau *Requête analysée* pour confirmer que la méthode, l'URL, les en-têtes, le type de corps et les options comme insecure ou follow redirects sont bien tels que vous l'attendiez.

  4. Copiez et ajustez l'authentification

    Copiez le code généré dans votre projet. Si le curl incluait un bearer token ou un cookie, remplacez la valeur littérale par une variable d'environnement avant de commiter.

Référence rapide des flags cURL

Les flags que ce convertisseur comprend et leur équivalent dans le code généré.

FlagSignificationExemple
-X, --requestMéthode HTTP-X POST
-H, --headerEn-tête de requête (répétable)-H 'Accept: application/json'
-d, --dataCorps de requête — URL-encode par défaut-d 'name=Ada&age=30'
--data-rawCorps sans expansion @file--data-raw '$body'
--data-urlencodeEncode une partie du corps en pourcentage--data-urlencode 'q=hello world'
-F, --formChamp de formulaire multipart (utilisez @file pour les fichiers)-F 'avatar=@photo.jpg'
-u, --userAuth basique → Authorization: Basic …-u alice:s3cret
-G, --getDéplace le corps dans la query string, envoie un GET-G -d 'q=ada'
-b, --cookieEn-tête Cookie-b 'session=abc'
-A, --user-agentEn-tête User-Agent-A 'MyApp/1.0'
-L, --locationSuit les redirections 3xx-L
-k, --insecureIgnore la vérification TLS (dev uniquement !)-k
--compressedAccepte les réponses gzip/deflate/br--compressed
--max-timeTimeout global de la requête en secondes--max-time 30

Exemples de conversion cURL

GET avec query string et en-tête d'authentification

curl
curl 'https://api.example.com/v1/lessons?limit=20&track=python' \  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.demo'
JavaScript (fetch)
const response = await fetch('https://api.example.com/v1/lessons?limit=20&track=python', {  method: 'GET',  headers: {    'Authorization': 'Bearer eyJhbGciOiJIUzI1NiJ9.demo'  }});const data = await response.json();

Les paramètres de requête présents dans l'URL y restent — le convertisseur ne les redécoupe pas dans un objet params séparé pour fetch. Pour axios et requests, vous les verrez extraits dans params / params= pour la lisibilité.

POST avec corps JSON

curl
curl 'https://api.example.com/v1/users' \  -H 'Content-Type: application/json' \  --data-raw '{"name":"Ada","age":36}'
Python (requests)
import requests
headers = {    'Content-Type': 'application/json',}json_data = {"name":"Ada","age":36}
response = requests.post('https://api.example.com/v1/users', headers=headers, json=json_data)response.raise_for_status()

Quand le corps est parsable en JSON et que Content-Type vaut application/json, le convertisseur émet json= pour requests et data: (objet parsé) pour axios. La chaîne littérale d'origine est conservée si JSON.parse échoue — jamais réécrite.

Upload de fichier multipart

curl
curl 'https://api.example.com/upload' \  -F 'caption=Hello' \  -F 'photo=@./avatar.jpg'
Python (requests)
import requests
files = {    'caption': (None, 'Hello'),    'photo': open('./avatar.jpg', 'rb'),}
response = requests.post('https://api.example.com/upload', files=files)response.raise_for_status()

-F field=@file devient un vrai upload de fichier (open('…', 'rb') en Python, FormData.append en JavaScript). Les champs -F simples deviennent des valeurs de formulaire classiques. L'aperçu navigateur affiche un placeholder TODO pour les blobs de fichier que vous devrez fournir à l'exécution.

Auth basique + cookie

curl
curl 'https://api.example.com/me' \  -u alice:s3cret \  -b 'session=2f9a; theme=dark'
JavaScript (fetch)
const response = await fetch('https://api.example.com/me', {  method: 'GET',  headers: {    'Authorization': 'Basic YWxpY2U6czNjcmV0',    'Cookie': 'session=2f9a; theme=dark'  }});

L'auth basique est condensée dans un unique en-tête Authorization. Les cookies sont joints avec ; et envoyés dans un seul en-tête Cookie — exactement comme curl le fait sur le réseau.

Erreurs fréquentes lors de la conversion de curl

  • Coller du curl avec des guillemets typographiques (', ', ", ") depuis un article de blog — ils ressemblent à des guillemets mais cassent le parsing shell. Le convertisseur les normalise, mais copiez la commande originale si vous le pouvez.
  • Laisser -k (--insecure) en production. Cela désactive la vérification du certificat TLS — ok pour le dev local, dangereux en trafic réel.
  • Oublier que --data-raw et --data se comportent différemment — --data URL-encode l'entrée. Utilisez --data-raw pour les corps JSON qui contiennent @ ou &.

FAQ Convertisseur cURL

Quels langages le convertisseur prend-il en charge ?
Douze cibles d'office : JavaScript (fetch), TypeScript (fetch), Node (axios), Python (requests), Python (httpx), Go (net/http), PHP (curl), Ruby (Net::HTTP), Java (HttpClient), C# (HttpClient), HTTPie et PowerShell (Invoke-RestMethod). Chacune est générée à partir de la même représentation parsée — basculer d'un onglet à l'autre est instantané.
Gère-t-il les uploads multipart et les flags -F ?
Oui. -F field=value devient un champ de formulaire classique, -F file=@path devient un vrai upload de fichier avec FormData (JS), files= (Python), CURLFile (PHP), etc. Les chemins de fichiers apparaissent comme des placeholders TODO que vous devrez relier à un File, Buffer ou stream à l'exécution.
Ma commande curl est-elle envoyée à un serveur ?
Non. Le parser et chaque générateur de code tournent dans votre navigateur. Les bearer tokens, les cookies et les corps de requête ne quittent jamais votre machine — par défaut, on les masque même dans l'aperçu *Requête analysée*.
Pourquoi mon curl Windows a-t-il l'air différent ?
Le curl.exe Windows (et CMD/PowerShell) utilise ^ ou un backtick \` comme continuation de ligne et peut citer les chaînes différemment. Le convertisseur normalise les motifs Windows les plus courants, mais si un collage semble incorrect, essayez de copier la commande sur une seule ligne.
Gère-t-il les requêtes GraphQL ?
Oui — une requête GraphQL est juste un POST avec un corps JSON contenant query et variables. Collez le curl, et le convertisseur émet un POST JSON classique dans votre langage cible. Traitez la forme de la réponse ({ data, errors }) comme dans n'importe quel client GraphQL.
Puis-je coller un curl exporté depuis Postman ?
Oui. L'export *Code → cURL* de Postman est entièrement supporté, y compris son formatage multiligne avec \. Idem pour le curl produit par *Copier en tant que cURL* dans les DevTools de Chrome et Firefox.
fetch vs axios — quelle sortie choisir ?
Utilisez fetch si votre projet l'a déjà (il est livré avec les navigateurs et Node moderne). Utilisez axios s'il vous faut le parsing JSON automatique, des intercepteurs de requête, des retries ou des événements de progression — des fonctionnalités que fetch ne fournit pas en standard.

En savoir plus

Autres outils pour développeurs

Coddy programming languages illustration

Apprendre à coder avec Coddy

COMMENCER