Convertește curl în OCaml
Convertește comenzile curl în cod OCaml folosind Cohttp. curl2code rulează integral în browserul tău prin WebAssembly — datele tale rămân private. Pentru Rust, încearcă convertorul nostru curl în Rust. Pentru Elixir, vezi curl în Elixir. Mai jos sunt exemple OCaml gata de utilizat.
Cum să copiezi curl din browserul tău
- 1
Deschide DevTools
Apasă F12 sau Ctrl+Shift+I pentru a deschide instrumentele de dezvoltare ale browserului.
- 2
Mergi la fila Network
Fă clic pe fila Network și efectuează acțiunea care declanșează cererea HTTP.
- 3
Copiază ca cURL
Fă clic dreapta pe cerere → Copy → Copy as cURL. Apoi lipește-o mai sus.
Întrebări frecvente
Ce este OCaml Cohttp?
Cohttp este biblioteca standard de client și server HTTP pentru OCaml. Aceasta suportă atât backend-uri Lwt (fire de execuție ușoare), cât și Async pentru I/O concurent. Instalați cu opam install cohttp-lwt-unix. Oferă un API funcțional și type-safe pentru cereri HTTP. curl2code utilizează Cohttp pentru toate conversiile OCaml.
Cohttp vs ocurl vs piaf — pe care să o folosesc?
Cohttp este biblioteca HTTP standard pentru OCaml cu suport Lwt/Async. ocurl este un wrapper pentru libcurl, oferind acces la toate funcționalitățile curl din OCaml. piaf este mai nouă, nativă HTTP/2. Folosiți Cohttp pentru OCaml idiomatic, ocurl când aveți nevoie de funcționalități specifice curl. Pentru limbaje funcționale similare, consultați curl către Elixir sau curl către Clojure.
Cum se gestionează autentificarea în OCaml?
Adăugați un antet Authorization la cerere: Header.add headers "Authorization" ("Bearer " ^ token). Pentru autentificarea Basic, codați base64 acreditările folosind pachetul base64. Antetele Cohttp sunt imuabile — construiți-le cu Header.of_list sau înlănțuiți apelurile Header.add.
Cum se trimit date de tip multipart form în OCaml?
Construiți corpul multipart manual cu șiruri de delimitare (boundary) sau folosiți o bibliotecă precum multipart_form. Setați antetul Content-Type cu delimitatorul respectiv. Corpul cererii în Cohttp este un simplu șir de caractere sau un flux — formatați sarcina utilă multipart conform RFC 2046. curl2code gestionează conversia flag-ului -F.
Cum se gestionează erorile în cererile HTTP OCaml?
Cohttp cu Lwt returnează promisiuni — folosiți Lwt.catch sau sintaxa try%lwt ... with pentru gestionarea erorilor. Verificați codul de stare al răspunsului cu Response.status response. Sistemul de tipuri din OCaml vă asigură că gestionați cazurile de eșec. Folosiți pattern matching pe codurile de stare pentru o gestionare exhaustivă.
Cum se fac cereri HTTP concurente în OCaml?
Cu backend-ul Lwt: folosiți Lwt.all [request1; request2] pentru execuție paralelă sau Lwt_list.map_p pentru maparea peste URL-uri. Cu Async: folosiți Deferred.all. Concurența cooperativă din OCaml prin Lwt sau Async oferă I/O concurent sigur și eficient, fără griji legate de siguranța firelor de execuție (thread safety).
Cum se setează timeout-urile în OCaml?
Cu Lwt, folosiți Lwt.pick [request; Lwt_unix.sleep timeout >>= fun () -> Lwt.fail Timeout] pentru a pune în competiție o cerere cu un cronometru. Cohttp nu are opțiuni de timeout încorporate — împachetați promisiunea Lwt cu un combinator de timeout. Pentru reîncercări, implementați o funcție recursivă cu un număr descrescător de încercări.
Cum se folosește un proxy în OCaml?
Cohttp nu are suport încorporat pentru proxy. Folosiți ocurl (binding-uri libcurl) pentru nevoile de proxy: setați opțiunea CURLOPT_PROXY. Alternativ, setați variabila de mediu HTTP_PROXY și configurați manual conexiunea pentru a fi rutată prin gazda și portul proxy-ului.
Cum se trimite o cerere POST cu un corp JSON în OCaml?
Convertește o comandă curl POST precum curl -X POST -H "Content-Type: application/json" -d '{"key":"value"}' URL în OCaml folosind curl2code. Codul generat utilizează Client.post ~body:(Cohttp_lwt.Body.of_string json) uri. curl2code detectează automat flag-urile -d/--data cu conținut JSON și setează antetul Content-Type corespunzător în codul Cohttp.
Cum se adaugă autorizarea prin Bearer token în OCaml?
Introdu curl -H "Authorization: Bearer YOUR_TOKEN" URL în curl2code și acesta va genera cod Cohttp cu antetul de autentificare: Header.add headers 'Authorization' 'Bearer YOUR_TOKEN'. curl2code detectează Bearer tokens atât din flag-urile -H "Authorization: Bearer ...", cât și din --oauth2-bearer. Pentru Basic auth, utilizează -u user:pass.
Cum se setează antetul Content-Type în OCaml?
curl2code convertește curl -H "Content-Type: application/json" URL în cod Cohttp cu antetul corect: Header.add headers 'Content-Type' 'application/json'. Pentru datele -d, curl folosește implicit application/x-www-form-urlencoded; pentru încărcările de formulare -F, folosește multipart/form-data. curl2code mapează fiecare opțiune către API-ul Cohttp corect.
Linkuri utile
Ghiduri curl
Coduri de eroare curl
Caută orice cod de ieșire curl — cauze, rezolvări și sfaturi de depanare.
Descărcarea fișierelor cu curl
Salvează fișiere cu -o, -O, urmează redirecționări, reia descărcări și multe altele.
SSL, TLS și proxy
Configurează certificate, versiuni TLS, proxy-uri HTTP/SOCKS și DNS personalizat.