Converter curl para OCaml

Converta comandos curl para código OCaml usando Cohttp. O curl2code é executado inteiramente no seu navegador via WebAssembly — seus dados permanecem privados. Para Rust, tente nosso conversor de curl para Rust. Para Elixir, veja curl para Elixir. Abaixo estão exemplos de OCaml prontos para usar.

Como copiar o curl do seu navegador

  1. 1

    Abra o DevTools

    Pressione F12 ou Ctrl+Shift+I para abrir as ferramentas de desenvolvedor do seu navegador.

  2. 2

    Vá para a aba Network

    Clique na aba Network e realize a ação que dispara a requisição HTTP.

  3. 3

    Copiar como cURL

    Clique com o botão direito na requisição → CopyCopy as cURL. Depois cole acima.

Perguntas Frequentes

O que é o OCaml Cohttp?

Cohttp é a biblioteca padrão de cliente e servidor HTTP para OCaml. Ela suporta backends Lwt (threads leves) e Async para E/S concorrente. Instale com opam install cohttp-lwt-unix. Ela fornece uma API funcional e type-safe para requisições HTTP. O curl2code usa Cohttp para todas as conversões em OCaml.

Cohttp vs ocurl vs piaf — qual usar?

Cohttp é a biblioteca HTTP padrão do OCaml com suporte a Lwt/Async. ocurl envolve a libcurl, dando acesso a todos os recursos do curl a partir do OCaml. piaf é mais recente e nativa para HTTP/2. Use Cohttp para um OCaml idiomático, e ocurl quando precisar de recursos específicos do curl. Para linguagens funcionais semelhantes, veja curl para Elixir ou curl para Clojure.

Como lidar com autenticação no OCaml?

Adicione um cabeçalho de Autorização à requisição: Header.add headers "Authorization" ("Bearer " ^ token). Para autenticação Basic, codifique as credenciais em base64 usando o pacote base64. Os cabeçalhos do Cohttp são imutáveis — construa-os com Header.of_list ou encadeie chamadas Header.add.

Como enviar dados de formulário multipart no OCaml?

Construa o corpo multipart manualmente com strings de boundary ou use uma biblioteca como multipart_form. Defina o cabeçalho Content-Type com o boundary. O corpo do Cohttp é uma string simples ou um stream — formate o payload multipart de acordo com a RFC 2046. O curl2code lida com a conversão da flag -F.

Como lidar com erros em requisições HTTP no OCaml?

O Cohttp com Lwt retorna promises — use a sintaxe Lwt.catch ou try%lwt ... with para tratamento de erros. Verifique o código de status da resposta com Response.status response. O sistema de tipos do OCaml garante que você trate os casos de falha. Use pattern matching nos códigos de status para um tratamento exaustivo.

Como fazer requisições HTTP concorrentes no OCaml?

Com o backend Lwt: use Lwt.all [request1; request2] para execução paralela ou Lwt_list.map_p para mapear sobre URLs. Com Async: use Deferred.all. A concorrência cooperativa do OCaml através de Lwt ou Async fornece E/S concorrente segura e eficiente sem preocupações com thread safety.

Como definir timeouts no OCaml?

Com Lwt, use Lwt.pick [request; Lwt_unix.sleep timeout >>= fun () -> Lwt.fail Timeout] para disputar uma requisição contra um temporizador. O Cohttp não possui opções de timeout integradas — envolva a promise Lwt com um combinador de timeout. Para tentativas (retries), implemente uma função recursiva com tentativas decrescentes.

Como usar um proxy no OCaml?

O Cohttp não possui suporte nativo a proxy. Use ocurl (bindings da libcurl) para necessidades de proxy: defina a opção CURLOPT_PROXY. Alternativamente, defina a variável de ambiente HTTP_PROXY e configure a conexão para rotear através do host e porta do proxy manualmente.

Como enviar uma requisição POST com corpo JSON em OCaml?

Converta um comando curl POST como curl -X POST -H "Content-Type: application/json" -d '{"key":"value"}' URL para OCaml usando o curl2code. O código gerado usa Client.post ~body:(Cohttp_lwt.Body.of_string json) uri. O curl2code detecta automaticamente as flags -d/--data com conteúdo JSON e define o cabeçalho Content-Type apropriado no código do Cohttp.

Como adicionar autorização com token Bearer em OCaml?

Passe curl -H "Authorization: Bearer YOUR_TOKEN" URL para o curl2code e ele gerará o código do Cohttp com o cabeçalho de autenticação: Header.add headers 'Authorization' 'Bearer YOUR_TOKEN'. O curl2code detecta tokens Bearer tanto de flags -H "Authorization: Bearer ..." quanto de --oauth2-bearer. Para Basic auth, use -u user:pass.

Como definir o cabeçalho Content-Type em OCaml?

O curl2code converte curl -H "Content-Type: application/json" URL para o código do Cohttp com o cabeçalho correto: Header.add headers 'Content-Type' 'application/json'. Para dados -d, o curl define por padrão application/x-www-form-urlencoded; para uploads de formulário com -F, ele usa multipart/form-data. O curl2code mapeia cada um para a API correta do Cohttp.

Links úteis

Guias do curl

Converter curl para outras linguagens