Convertir curl en C

curl2code convertit les commandes curl en code C à l'aide de libcurl. La conversion s'exécute dans votre navigateur via WebAssembly pour une confidentialité totale. Pour Rust, consultez notre convertisseur curl vers Rust. Pour Go, voir curl vers Go. Vous trouverez ci-dessous des exemples C pratiques avec une gestion appropriée de la mémoire.

Comment copier curl depuis votre navigateur

  1. 1

    Ouvrir les DevTools

    Appuyez sur F12 ou Ctrl+Shift+I pour ouvrir les outils de développement de votre navigateur.

  2. 2

    Aller dans l'onglet Network

    Cliquez sur l'onglet Network et effectuez l'action qui déclenche la requête HTTP.

  3. 3

    Copier comme cURL

    Faites un clic droit sur la requête → CopyCopy as cURL. Collez-la ensuite ci-dessus.

Foire Aux Questions

Qu'est-ce que libcurl ?

libcurl est la bibliothèque C derrière l'outil en ligne de commande curl. C'est la bibliothèque client HTTP la plus portable et la plus largement déployée, prenant en charge plus de 25 protocoles. Utilisée par des milliers d'applications et de systèmes embarqués. Ajoutez-la avec votre gestionnaire de paquets système ou liez-la statiquement. curl2code génère du code C libcurl en utilisant l'interface "easy".

Interface libcurl easy vs multi — laquelle utiliser ?

L'interface easy (curl_easy_*) est destinée aux transferts synchrones uniques — simple et directe. L'interface multi (curl_multi_*) permet des transferts concurrents non bloquants dans un seul thread. Utilisez easy pour les scripts et les outils simples, multi pour les applications haute performance. Pour un langage de la famille C de plus haut niveau, voir curl vers Rust.

Comment gérer l'authentification avec libcurl ?

Pour Bearer : définissez un en-tête personnalisé avec curl_slist_append(headers, "Authorization: Bearer token"). Pour l'authentification Basic : curl_easy_setopt(curl, CURLOPT_USERPWD, "user:pass"). libcurl encode automatiquement les identifiants Basic. curl2code convertit les drapeaux -u et d'en-tête vers les appels d'API C corrects.

Comment envoyer des données de formulaire multipart avec libcurl ?

Utilisez l'API MIME (libcurl 7.56+) : curl_mime_init() pour créer une structure mime, curl_mime_addpart() pour chaque champ, curl_mime_name() et curl_mime_filedata() pour les téléversements de fichiers. Définissez avec CURLOPT_MIMEPOST. Libérez avec curl_mime_free().

Comment gérer les erreurs avec libcurl ?

Chaque fonction curl_easy_* renvoie un CURLcode — vérifiez par rapport à CURLE_OK. Utilisez curl_easy_strerror(code) pour des messages lisibles par l'homme. Définissez CURLOPT_ERRORBUFFER pour des chaînes d'erreur détaillées. Obtenez le statut HTTP avec curl_easy_getinfo(curl, CURLINFO_RESPONSE_CODE, &code).

Comment gérer la mémoire avec libcurl ?

Appelez toujours curl_easy_cleanup() lorsque vous avez terminé avec un handle. Libérez les listes d'en-têtes avec curl_slist_free_all(). Libérez les structures MIME avec curl_mime_free(). Pour les rappels d'écriture (write callbacks), gérez votre propre allocation de tampon. Appelez curl_global_cleanup() une fois à la sortie du programme. Ne pas libérer les ressources cause des fuites de mémoire.

Comment définir des délais d'expiration avec libcurl ?

Définissez CURLOPT_CONNECTTIMEOUT pour le délai de connexion et CURLOPT_TIMEOUT pour le temps total de transfert (tous deux en secondes). Pour une précision en millisecondes, utilisez CURLOPT_CONNECTTIMEOUT_MS et CURLOPT_TIMEOUT_MS. Ce sont exactement les mêmes options que curl CLI utilise avec --connect-timeout et --max-time.

Comment configurer un proxy avec libcurl ?

Définissez CURLOPT_PROXY sur l'URL du proxy : curl_easy_setopt(curl, CURLOPT_PROXY, "http://proxy:8080"). Pour SOCKS5 : définissez CURLOPT_PROXYTYPE sur CURLPROXY_SOCKS5. Pour l'authentification proxy : CURLOPT_PROXYUSERPWD. libcurl respecte également la variable d'environnement http_proxy.

Comment envoyer une requête POST avec un corps JSON en C ?

Convertissez une commande curl POST comme curl -X POST -H "Content-Type: application/json" -d "{"key":"value"}" URL en C en utilisant curl2code. Le code généré utilise curl_easy_setopt(curl, CURLOPT_POSTFIELDS, json_string). curl2code détecte automatiquement les drapeaux -d/--data avec du contenu JSON et définit l'en-tête Content-Type approprié dans le code libcurl.

Comment ajouter une autorisation par jeton Bearer en C ?

Passez curl -H "Authorization: Bearer YOUR_TOKEN" URL à curl2code et il générera le code libcurl avec l'en-tête d'authentification : struct curl_slist *headers = curl_slist_append(NULL, "Authorization: Bearer TOKEN"). curl2code détecte les jetons Bearer à partir des drapeaux -H "Authorization: Bearer ..." et --oauth2-bearer. Pour le Basic auth, utilisez -u user:pass.

Comment définir l''en-tête Content-Type en C ?

curl2code convertit curl -H "Content-Type: application/json" URL en code libcurl avec l'en-tête approprié : curl_slist_append(headers, "Content-Type: application/json"). Pour les données -d, curl utilise par défaut application/x-www-form-urlencoded ; pour les téléchargements de formulaires -F, il utilise multipart/form-data. curl2code associe chacun à l'API libcurl correcte.

Liens utiles

Guides curl

Convertir curl vers d'autres langages