Comment utiliser le convertisseur cURL vers code
Collez une commande cURL dans la zone de saisie, selectionnez votre langage de programmation cible dans le menu deroulant et cliquez sur Convertir. L'outil analyse la commande cURL pour extraire la methode HTTP, l'URL, les en-tetes et le corps de la requete, puis genere du code equivalent en utilisant la bibliotheque HTTP standard du langage selectionne. Le panneau de statistiques affiche la methode analysee, l'URL, le nombre d'en-tetes et la presence ou non d'un corps. Utilisez le bouton Copier pour copier le code genere dans votre presse-papiers.
Cet outil est inestimable pour les developpeurs qui testent des API avec cURL et ont ensuite besoin d'integrer ces requetes dans le code de leur application. Les outils de developpement des navigateurs vous permettent de copier n'importe quelle requete reseau sous forme de commande cURL, ce qui facilite la capture d'une requete fonctionnelle et sa conversion en code dans le langage de votre choix.
Comprendre les commandes cURL
cURL est le client HTTP en ligne de commande le plus utilise, installe par defaut sur pratiquement tous les systemes d'exploitation. Une commande cURL se compose du mot-cle curl suivi d'une URL et d'indicateurs optionnels. L'indicateur -X specifie la methode HTTP (GET, POST, PUT, DELETE, etc.). L'indicateur -H ajoute des en-tetes de requete comme Content-Type et Authorization. L'indicateur -d envoie des donnees dans le corps de la requete. L'indicateur -u fournit les identifiants d'authentification basique.
Lorsqu'aucune methode n'est explicitement specifiee, cURL utilise par defaut GET. Lorsque l'indicateur -d est utilise sans -X, cURL bascule automatiquement en POST. Ces comportements implicites sont preserves dans le code genere, qui definit explicitement la methode pour rendre l'intention claire independamment des valeurs par defaut specifiques au langage.
Langages et bibliotheques pris en charge
Le convertisseur genere du code idiomatique pour quatre langages populaires. Le code Python utilise la bibliotheque requests, qui est la norme de facto pour HTTP en Python. Le code JavaScript utilise l'API fetch integree, disponible dans tous les navigateurs modernes et Node.js. Le code Ruby utilise Net::HTTP de la bibliotheque standard. Le code PHP utilise les fonctions cURL (curl_init, curl_setopt, curl_exec), disponibles dans pratiquement toutes les installations PHP.
Gestion de l'authentification et des en-tetes
Les requetes API necessitent souvent une authentification. Le convertisseur gere l'authentification par jeton Bearer transmise via -H 'Authorization: Bearer ...', l'authentification basique via -u username:password et les en-tetes de cle API. Les en-tetes personnalises sont traduits dans le mecanisme de definition d'en-tetes approprie pour chaque langage. Les en-tetes Content-Type sont preserves pour garantir que le corps de la requete est envoye dans le bon format, que ce soit JSON, encode en formulaire ou multipart.
Comprendre les indicateurs cURL
cURL offre des dizaines d'indicateurs en ligne de commande, mais une poignee represente la grande majorite de l'utilisation reelle. Apprendre ce que fait chacun vous aide a lire et ecrire des commandes cURL avec confiance, et les comprendre facilite la verification que le code converti est correct.
Indicateurs de requete
L'indicateur -X (ou --request) definit la methode HTTP. Les valeurs courantes sont GET, POST, PUT, PATCH et DELETE. Si vous omettez -X entierement, cURL utilise par defaut GET sauf si un indicateur de donnees comme -d est present, auquel cas il bascule automatiquement en POST. L'indicateur -H (ou --header) ajoute un en-tete personnalise a la requete. Vous pouvez l'utiliser plusieurs fois pour definir plusieurs en-tetes : -H 'Content-Type: application/json' -H 'Accept: application/json'. L'indicateur -d (ou --data) envoie des donnees dans le corps de la requete et implique POST. Pour les charges utiles JSON, vous l'associez generalement avec -H 'Content-Type: application/json'. La variante --data-raw se comporte de maniere identique mais n'interprete pas le prefixe @ comme une reference de fichier.
Indicateurs d'authentification et de sortie
L'indicateur -u (ou --user) fournit les identifiants d'authentification basique au format username:password. cURL les encode en Base64 et les envoie dans l'en-tete Authorization. L'indicateur -o (ou --output) ecrit le corps de la reponse dans un fichier au lieu de la sortie standard. L'indicateur -O enregistre dans un fichier en utilisant le nom de fichier distant de l'URL. L'indicateur -v (ou --verbose) affiche les informations detaillees de la requete et de la reponse, y compris les details de la poignee de main TLS et les echanges d'en-tetes, ce qui est inestimable pour le debogage. L'indicateur -k (ou --insecure) demande a cURL de ne pas verifier le certificat TLS, utile pour les environnements de developpement avec des certificats auto-signes mais dangereux en production. L'indicateur -L (ou --location) demande a cURL de suivre les redirections HTTP (reponses 3xx), que de nombreuses API et sites Web emettent.
Fonctionnement de la conversion
La conversion d'une commande cURL en code source implique plusieurs etapes distinctes. Le convertisseur tokenise d'abord la chaine d'entree, la divisant sur les espaces blancs tout en respectant les guillemets simples et doubles afin que les valeurs d'en-tetes et les corps JSON contenant des espaces restent intacts. Ensuite, il parcourt la liste de jetons sequentiellement, identifiant les indicateurs connus et consommant leurs arguments. Un indicateur comme -X consomme le jeton suivant comme methode HTTP ; -H consomme le jeton suivant comme chaine d'en-tete ; -d ou --data consomme le jeton suivant comme corps de requete. Les jetons non associes a un indicateur et ressemblant a des URL (commencant par http:// ou https://) sont captures comme URL cible.
Une fois l'analyse terminee, le convertisseur detient une representation structuree de la requete : l'URL, la methode HTTP, une liste d'en-tetes (chacun divise en nom et valeur sur le premier deux-points), la chaine brute du corps et les identifiants d'authentification eventuels. Cette representation intermediaire est independante du langage. L'etape finale est la generation de code, ou un modele specifique au langage fait correspondre chaque composant aux idiomes HTTP du langage cible. La methode devient un argument de fonction ou une constante, les en-tetes deviennent un dictionnaire ou un tableau associatif, et le corps est attache de la maniere attendue par la bibliotheque. Le code genere est formate avec une indentation correcte et pret a etre execute.
Les cas particuliers necessitent un traitement special. Les commandes cURL multiligne utilisant la continuation par barre oblique inversee (\ en fin de ligne) sont jointes avant l'analyse. L'indicateur -u est traduit en un mecanisme d'authentification basique specifique au langage plutot que d'etre laisse comme un en-tete brut. Les en-tetes en double sont preserves dans l'ordre, car certaines API s'appuient sur plusieurs valeurs pour le meme nom d'en-tete (par exemple, plusieurs en-tetes Set-Cookie). Le convertisseur supprime egalement les caracteres d'invite shell $ ou % en debut de ligne qui apparaissent parfois lorsqu'une commande est copiee depuis un tutoriel ou une capture d'ecran de terminal.
Bibliotheques HTTP specifiques aux langages
Chaque langage cible utilise une bibliotheque differente avec ses propres conventions pour construire des requetes HTTP. Comprendre ces differences vous aide a choisir la bonne sortie et a modifier le code genere si necessaire.
Python — requests
La bibliotheque requests est le client HTTP le plus populaire de l'ecosysteme Python. Elle fournit une API simple et de haut niveau ou la methode HTTP correspond directement a un nom de fonction : requests.get(), requests.post(), etc. Les en-tetes sont passes sous forme de dictionnaire simple a l'argument mot-cle headers. Les corps JSON peuvent etre passes via le parametre json, qui definit automatiquement l'en-tete Content-Type et serialise le dictionnaire. Le parametre auth accepte un tuple pour l'authentification basique. Les donnees de reponse sont disponibles via .json(), .text ou .content selon le format souhaite.
JavaScript — API fetch
L'API fetch est integree dans tous les navigateurs modernes et Node.js 18+. Elle prend une URL comme premier argument et un objet d'options comme second. L'objet d'options accepte les proprietes method, headers et body. Les en-tetes peuvent etre un objet simple ou une instance Headers. Contrairement a requests en Python, fetch ne genere pas d'exception sur les codes de statut d'erreur HTTP ; vous devez verifier response.ok vous-meme. Le corps de la reponse est consomme de maniere asynchrone via des methodes comme response.json() ou response.text(). Comme fetch retourne une Promise, le code genere utilise async/await pour la lisibilite.
Ruby — Net::HTTP
La bibliotheque standard de Ruby inclut Net::HTTP, qui est plus verbeuse que les equivalents Python ou JavaScript mais ne necessite aucune dependance externe. Une requete typique commence par l'analyse de l'URL en un objet URI, puis la creation d'une instance Net::HTTP configuree pour l'hote et le port. Les objets de requete comme Net::HTTP::Post ou Net::HTTP::Get representent la methode. Les en-tetes sont definis en utilisant la notation entre crochets sur l'objet de requete. Le corps est assigne directement. Pour les URL HTTPS, use_ssl doit etre defini a true. En raison de cette verbosité, de nombreux developpeurs Ruby utilisent des gems enveloppantes comme Faraday ou HTTParty, mais le code genere s'en tient a la bibliotheque standard pour une portabilite maximale.
PHP — Extension cURL
L'extension cURL de PHP enveloppe la meme bibliotheque libcurl qui alimente l'outil en ligne de commande curl. Le flux de travail tourne autour d'un handle cree avec curl_init(). Les options sont definies via des appels a curl_setopt() : CURLOPT_URL pour l'URL cible, CURLOPT_CUSTOMREQUEST pour la methode HTTP, CURLOPT_HTTPHEADER pour un tableau de chaines d'en-tetes, et CURLOPT_POSTFIELDS pour le corps de la requete. Definir CURLOPT_RETURNTRANSFER a true fait que curl_exec() retourne la reponse sous forme de chaine au lieu de l'afficher. Comme l'extension PHP reflete etroitement l'API C de libcurl, le code PHP genere correspond presque un pour un avec les indicateurs cURL originaux, ce qui en fait la conversion la plus transparente des quatre langages.
Questions frequemment posees
Qu'est-ce que cURL ?
cURL est un outil en ligne de commande pour effectuer des requetes HTTP. Il est pre-installe sur Linux, macOS et Windows 10+, et c'est l'outil standard pour tester les API.
Comment lire une commande cURL ?
Elle commence par curl suivi d'une URL. Utilisez -X pour la methode, -H pour les en-tetes, -d pour les donnees du corps et -u pour l'authentification.
Quelles methodes HTTP cURL prend-il en charge ?
Toutes les methodes standard : GET, POST, PUT, PATCH, DELETE, HEAD et OPTIONS. Definissez la methode avec l'indicateur -X.
Puis-je convertir cURL avec authentification ?
Oui. L'outil gere l'authentification basique (-u), les jetons Bearer (-H Authorization) et d'autres modeles d'authentification bases sur les en-tetes.
Cet outil gere-t-il les donnees multipart ?
Oui. Les commandes avec les indicateurs -F pour les telechargements de fichiers et les champs de formulaire sont converties dans la syntaxe multipart appropriee de chaque langage.
Save your results & get weekly tips
Get calculator tips, formula guides, and financial insights delivered weekly. Join 10,000+ readers.
No spam. Unsubscribe anytime.