Convertir curl en OCaml
Convertissez des commandes curl en code OCaml à l'aide de Cohttp. curl2code s'exécute entièrement dans votre navigateur via WebAssembly — vos données restent privées. Pour Rust, essayez notre convertisseur curl vers Rust. Pour Elixir, voir curl vers Elixir. Vous trouverez ci-dessous des exemples OCaml prêts à l'emploi.
Comment copier curl depuis votre navigateur
- 1
Ouvrir les DevTools
Appuyez sur F12 ou Ctrl+Shift+I pour ouvrir les outils de développement de votre navigateur.
- 2
Aller dans l'onglet Network
Cliquez sur l'onglet Network et effectuez l'action qui déclenche la requête HTTP.
- 3
Copier comme cURL
Faites un clic droit sur la requête → Copy → Copy as cURL. Collez-la ensuite ci-dessus.
Foire Aux Questions
Qu'est-ce que OCaml Cohttp ?
Cohttp est la bibliothèque client et serveur HTTP standard pour OCaml. Elle prend en charge les backends Lwt (threads légers) et Async pour les E/S concurrentes. Installez-la avec opam install cohttp-lwt-unix. Elle fournit une API fonctionnelle et typée pour les requêtes HTTP. curl2code utilise Cohttp pour toutes les conversions OCaml.
Cohttp vs ocurl vs piaf — lequel utiliser ?
Cohttp est la bibliothèque HTTP OCaml standard avec support Lwt/Async. ocurl enveloppe libcurl, donnant accès à toutes les fonctionnalités de curl depuis OCaml. piaf est plus récent et natif HTTP/2. Utilisez Cohttp pour un code OCaml idiomatique, ocurl quand vous avez besoin de fonctionnalités spécifiques à curl. Pour des langages fonctionnels similaires, voir curl vers Elixir ou curl vers Clojure.
Comment gérer l'authentification en OCaml ?
Ajoutez un en-tête d'autorisation à la requête : Header.add headers "Authorization" ("Bearer " ^ token). Pour l'authentification Basic, encodez les identifiants en base64 en utilisant le paquet base64. Les en-têtes Cohttp sont immuables — construisez-les avec Header.of_list ou enchaînez les appels Header.add.
Comment envoyer des données de formulaire multipart en OCaml ?
Construisez le corps multipart manuellement avec des chaînes de délimitation (boundary), ou utilisez une bibliothèque comme multipart_form. Définissez l'en-tête Content-Type avec la boundary. Le corps de Cohttp est une simple chaîne ou un flux — formatez la charge utile multipart selon la RFC 2046. curl2code gère la conversion du drapeau -F.
Comment gérer les erreurs dans les requêtes HTTP OCaml ?
Cohttp avec Lwt renvoie des promesses — utilisez la syntaxe Lwt.catch ou try%lwt ... with pour la gestion des erreurs. Vérifiez le code d'état de la réponse avec Response.status response. Le système de types d'OCaml garantit que vous gérez les cas d'échec. Utilisez le filtrage par motif (pattern matching) sur les codes d'état pour une gestion exhaustive.
Comment effectuer des requêtes HTTP concurrentes en OCaml ?
Avec le backend Lwt : utilisez Lwt.all [request1; request2] pour une exécution parallèle ou Lwt_list.map_p pour mapper sur des URLs. Avec Async : utilisez Deferred.all. La concurrence coopérative d'OCaml via Lwt ou Async fournit des E/S concurrentes sûres et efficaces sans soucis de sécurité des threads.
Comment définir des délais d'attente (timeouts) en OCaml ?
Avec Lwt, utilisez Lwt.pick [request; Lwt_unix.sleep timeout >>= fun () -> Lwt.fail Timeout] pour mettre en concurrence une requête et un minuteur. Cohttp n'a pas d'options de timeout intégrées — enveloppez la promesse Lwt avec un combinateur de timeout. Pour les tentatives (retries), implémentez une fonction récursive avec un nombre d'essais décroissant.
Comment utiliser un proxy en OCaml ?
Cohttp n'a pas de support proxy intégré. Utilisez ocurl (liaisons libcurl) pour les besoins de proxy : définissez l'option CURLOPT_PROXY. Alternativement, définissez la variable d'environnement HTTP_PROXY et configurez manuellement la connexion pour qu'elle passe par l'hôte et le port du proxy.
Comment envoyer une requête POST avec un corps JSON en OCaml ?
Convertissez une commande curl POST comme curl -X POST -H "Content-Type: application/json" -d '{"key":"value"}' URL en OCaml en utilisant curl2code. Le code généré utilise Client.post ~body:(Cohttp_lwt.Body.of_string json) uri. 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 Cohttp.
Comment ajouter une autorisation par jeton Bearer en OCaml ?
Passez curl -H "Authorization: Bearer YOUR_TOKEN" URL à curl2code et il générera le code Cohttp avec l'en-tête d'authentification : Header.add headers 'Authorization' 'Bearer YOUR_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 OCaml ?
curl2code convertit curl -H "Content-Type: application/json" URL en code Cohttp avec l'en-tête approprié : Header.add 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 Cohttp correcte.
Liens utiles
Guides curl
Codes d'erreur curl
Recherchez n'importe quel code de sortie curl — causes, corrections et astuces de débogage.
Télécharger des fichiers avec curl
Enregistrez des fichiers avec -o, -O, suivez les redirections, reprenez les téléchargements et plus encore.
SSL, TLS et proxy
Configurez les certificats, les versions TLS, les proxys HTTP/SOCKS et le DNS personnalisé.