Converti curl in OCaml
Converti i comandi curl in codice OCaml utilizzando Cohttp. curl2code viene eseguito interamente nel tuo browser tramite WebAssembly — i tuoi dati rimangono privati. Per Rust, prova il nostro convertitore da curl a Rust. Per Elixir, vedi da curl a Elixir. Di seguito sono riportati esempi OCaml pronti all'uso.
Come copiare curl dal tuo browser
- 1
Apri DevTools
Premi F12 o Ctrl+Shift+I per aprire gli strumenti per sviluppatori del browser.
- 2
Vai alla scheda Network
Fai clic sulla scheda Network ed esegui l'azione che attiva la richiesta HTTP.
- 3
Copia come cURL
Fai clic con il tasto destro sulla richiesta → Copia → Copia come cURL. Quindi incollalo sopra.
Domande Frequenti
Cos'è OCaml Cohttp?
Cohttp è la libreria standard per client e server HTTP per OCaml. Supporta sia i backend Lwt (thread leggeri) che Async per l'I/O concorrente. Si installa con opam install cohttp-lwt-unix. Fornisce un'API funzionale e type-safe per le richieste HTTP. curl2code utilizza Cohttp per tutte le conversioni OCaml.
Cohttp vs ocurl vs piaf: quale usare?
Cohttp è la libreria HTTP standard di OCaml con supporto Lwt/Async. ocurl è un wrapper di libcurl, che consente l'accesso a tutte le funzionalità di curl da OCaml. piaf è più recente e nativa per HTTP/2. Usa Cohttp per un OCaml idiomatico, ocurl quando hai bisogno di funzionalità specifiche di curl. Per linguaggi funzionali simili, vedi da curl a Elixir o da curl a Clojure.
Come gestire l'autenticazione in OCaml?
Aggiungi un header Authorization alla richiesta: Header.add headers "Authorization" ("Bearer " ^ token). Per l'autenticazione Basic, codifica le credenziali in base64 usando il pacchetto base64. Gli header di Cohttp sono immutabili: costruiscili con Header.of_list o concatena le chiamate Header.add.
Come inviare dati modulo multipart in OCaml?
Costruisci il corpo multipart manualmente con le stringhe boundary, oppure usa una libreria come multipart_form. Imposta l'header Content-Type con il boundary. Il corpo di Cohttp è una semplice stringa o uno stream: formatta il payload multipart secondo la RFC 2046. curl2code gestisce la conversione del flag -F.
Come gestire gli errori nelle richieste HTTP in OCaml?
Cohttp con Lwt restituisce promise: usa Lwt.catch o la sintassi try%lwt ... with per la gestione degli errori. Controlla il codice di stato della risposta con Response.status response. Il sistema di tipi di OCaml garantisce la gestione dei casi di errore. Usa il pattern matching sui codici di stato per una gestione esaustiva.
Come effettuare richieste HTTP concorrenti in OCaml?
Con il backend Lwt: usa Lwt.all [request1; request2] per l'esecuzione parallela o Lwt_list.map_p per mappare gli URL. Con Async: usa Deferred.all. La concorrenza cooperativa di OCaml tramite Lwt o Async fornisce un I/O concorrente sicuro ed efficiente senza problemi di sicurezza dei thread.
Come impostare i timeout in OCaml?
Con Lwt, usa Lwt.pick [request; Lwt_unix.sleep timeout >>= fun () -> Lwt.fail Timeout] per far competere una richiesta contro un timer. Cohttp non ha opzioni di timeout integrate: avvolgi la promise Lwt con un combinatore di timeout. Per i retry, implementa una funzione ricorsiva con tentativi decrescenti.
Come usare un proxy in OCaml?
Cohttp non ha un supporto integrato per i proxy. Usa ocurl (binding libcurl) per le esigenze di proxy: imposta l'opzione CURLOPT_PROXY. In alternativa, imposta la variabile d'ambiente HTTP_PROXY e configura manualmente la connessione per instradarla attraverso l'host e la porta del proxy.
Come inviare una richiesta POST con un corpo JSON in OCaml?
Converti un comando curl POST come curl -X POST -H "Content-Type: application/json" -d '{"key":"value"}' URL in OCaml usando curl2code. Il codice generato utilizza Client.post ~body:(Cohttp_lwt.Body.of_string json) uri. curl2code rileva automaticamente i flag -d/--data con contenuto JSON e imposta l'intestazione Content-Type appropriata nel codice Cohttp.
Come aggiungere l''autorizzazione con Bearer token in OCaml?
Passa curl -H "Authorization: Bearer YOUR_TOKEN" URL a curl2code e genererà il codice Cohttp con l'intestazione di autenticazione: Header.add headers 'Authorization' 'Bearer YOUR_TOKEN'. curl2code rileva i Bearer token sia dai flag -H "Authorization: Bearer ..." che --oauth2-bearer. Per la Basic auth, usa -u user:pass.
Come impostare l''intestazione Content-Type in OCaml?
curl2code converte curl -H "Content-Type: application/json" URL in codice Cohttp con l'intestazione corretta: Header.add headers 'Content-Type' 'application/json'. Per i dati -d, curl utilizza come predefinito application/x-www-form-urlencoded; per i caricamenti di moduli -F, utilizza multipart/form-data. curl2code mappa ciascuno alla corretta API di Cohttp.