Převést curl do OCaml
Převeďte curl příkazy na kód v OCamlu pomocí Cohttp. curl2code běží zcela ve vašem prohlížeči přes WebAssembly — vaše data zůstávají v soukromí. Pro Rust zkuste náš převodník curl do Rustu. Pro Elixir viz curl do Elixiru. Níže jsou příklady v OCamlu připravené k použití.
Jak zkopírovat curl z prohlížeče
- 1
Otevřete DevTools
Stiskněte F12 nebo Ctrl+Shift+I pro otevření vývojářských nástrojů prohlížeče.
- 2
Přejděte na kartu Network
Klikněte na kartu Network a proveďte akci, která vyvolá HTTP požadavek.
- 3
Zkopírovat jako cURL
Klikněte pravým tlačítkem na požadavek → Copy → Copy as cURL. Poté jej vložte výše.
Často kladené dotazy
Co je OCaml Cohttp?
Cohttp je standardní knihovna pro HTTP klienty a servery v OCaml. Podporuje Lwt (lehká vlákna) i Async backendy pro souběžné I/O. Instaluje se pomocí opam install cohttp-lwt-unix. Poskytuje typově bezpečné, funkcionální API pro HTTP požadavky. curl2code používá Cohttp pro všechny konverze do OCaml.
Cohttp vs ocurl vs piaf — co použít?
Cohttp je standardní knihovna OCaml pro HTTP s podporou Lwt/Async. ocurl obaluje libcurl a umožňuje přístup ke všem funkcím curl z OCaml. piaf je novější a nativně podporuje HTTP/2. Pro idiomatický OCaml použijte Cohttp, pro specifické funkce curl pak ocurl. Pro podobné funkcionální jazyky viz curl do Elixir nebo curl do Clojure.
Jak řešit autentizaci v OCaml?
Přidejte hlavičku Authorization k požadavku: Header.add headers "Authorization" ("Bearer " ^ token). Pro Basic auth zakódujte přihlašovací údaje do base64 pomocí balíčku base64. Hlavičky Cohttp jsou neměnné (immutable) — sestavte je pomocí Header.of_list nebo řetězením volání Header.add.
Jak poslat multipart form data v OCaml?
Sestavte tělo multipart ručně s oddělovacími řetězci (boundary) nebo použijte knihovnu jako multipart_form. Nastavte hlavičku Content-Type s příslušným boundary. Tělo v Cohttp je jednoduchý řetězec nebo stream — formátujte multipart payload podle RFC 2046. curl2code řeší konverzi příznaku -F automaticky.
Jak řešit chyby u HTTP požadavků v OCaml?
Cohttp s Lwt vrací přísliby (promises) — pro zpracování chyb použijte syntaxi Lwt.catch nebo try%lwt ... with. Zkontrolujte stavový kód odpovědi pomocí Response.status response. Typový systém OCaml zajišťuje, že ošetříte případy selhání. Pro vyčerpávající zpracování použijte pattern matching na stavové kódy.
Jak provádět souběžné HTTP požadavky v OCaml?
S Lwt backendem: použijte Lwt.all [request1; request2] pro paralelní spuštění nebo Lwt_list.map_p pro mapování přes URL. S Async: použijte Deferred.all. Kooperativní souběžnost OCaml prostřednictvím Lwt nebo Async poskytuje bezpečné a efektivní souběžné I/O bez obav o vláknovou bezpečnost.
Jak nastavit timeouty v OCaml?
V Lwt použijte Lwt.pick [request; Lwt_unix.sleep timeout >>= fun () -> Lwt.fail Timeout] pro závod požadavku s časovačem. Cohttp nemá vestavěné volby pro timeout — obalte příslib Lwt timeout kombinátorem. Pro opakování (retries) implementujte rekurzivní funkci s klesajícím počtem pokusů.
Jak používat proxy v OCaml?
Cohttp nemá vestavěnou podporu proxy. Pro potřeby proxy použijte ocurl (vazby na libcurl): nastavte volbu CURLOPT_PROXY. Alternativně nastavte proměnnou prostředí HTTP_PROXY a nakonfigurujte připojení tak, aby ručně směrovalo přes hostitele a port proxy.
Jak odeslat POST požadavek s JSON tělem v OCamlu?
Převeďte curl POST příkaz jako curl -X POST -H "Content-Type: application/json" -d '{"key":"value"}' URL do OCamlu pomocí curl2code. Vygenerovaný kód používá Client.post ~body:(Cohttp_lwt.Body.of_string json) uri. curl2code automaticky detekuje -d/--data přepínače s JSON obsahem a nastaví odpovídající Content-Type hlavičku v kódu pro Cohttp.
Jak přidat autorizaci pomocí Bearer tokenu v OCamlu?
Vložte curl -H "Authorization: Bearer YOUR_TOKEN" URL do curl2code a nástroj vygeneruje kód pro Cohttp s autorizační hlavičkou: Header.add headers 'Authorization' 'Bearer YOUR_TOKEN'. curl2code detekuje Bearer tokeny z přepínačů -H "Authorization: Bearer ..." i --oauth2-bearer. Pro Basic auth použijte -u user:pass.
Jak nastavit hlavičku Content-Type v OCamlu?
curl2code převede curl -H "Content-Type: application/json" URL na kód pro Cohttp se správnou hlavičkou: Header.add headers 'Content-Type' 'application/json'. Pro data u -d curl standardně používá application/x-www-form-urlencoded; pro nahrávání formulářů přes -F používá multipart/form-data. curl2code mapuje každý z nich na správné Cohttp API.