Référence technique et guide d'architecture

Aide-mémoire cURL vers Python Requests, httpx & aiohttp — Guide de référence

Transformez vos commandes cURL en code Python idiomatique avec requests, httpx asynchrone et aiohttp. Nettoyage des en-têtes DevTools et confidentialité totale.

Paramètres clés et contrôles

rawCurlstring

Commande cURL brute issue du terminal ou des outils DevTools.

Par défaut : Auto
wrapInFunctionboolean

Englobe le code dans une fonction ou coroutine asynchrone.

Par défaut : true
cleanDevToolsboolean

Supprime les pseudo-en-têtes (:authority) qui génèrent des erreurs en Python.

Par défaut : true
jsonAsDictboolean

Transforme le JSON en dictionnaire Python natif pour l'argument json=.

Par défaut : true

Conseils de pro et bonnes practices

Nettoyer les pseudo-en-têtes de DevTools (:authority)

Les en-têtes préfixés par deux-points (:) issus de Chrome provoquent des exceptions InvalidHeader dans les clients Python. Laissez l'option active.

Préférer le paramètre json= à data=json.dumps()

Passer json=payload configure automatiquement l'en-tête Content-Type et l'encodage UTF-8.

Exploiter requests.Session() pour le pooling TCP

Pour des requêtes successives vers le même hôte, une Session maintient les connexions TCP ouvertes et conserve les cookies.

Pièges courants et dépannage

Erreur InvalidHeader: Invalid leading colon

Activez le nettoyage des en-têtes DevTools pour supprimer :authority du dictionnaire d'en-têtes.

Erreur HTTP 415 Unsupported Media Type retournée

Transmettez les données via json=data plutôt que data=chaine pour garantir le bon format MIME.

Foire aux questions (FAQ)

Quand privilégier httpx par rapport à requests ?▼

httpx est recommandé pour les coroutines asynchrones avec FastAPI ou asyncio, ainsi que pour le protocole HTTP/2.

Comment les valeurs booléennes et nulles sont-elles traduites ?▼

true devient True, false devient False, et null est traduit en None.

Comment l'envoi de fichier (-F file=@path) est-il traduit ?▼

Il est transformé en paramètre files={'file': open('path', 'rb')} avec délimiteurs multipart automatiques.

Mes identifiants ou jetons sont-ils enregistrés ?▼

Non. Le découpage et la génération du script s'exécutent intégralement dans votre navigateur.

Outils et utilitaires connexes

Tous les outils →