Converter curl para OCaml

Converta comandos curl para código OCaml utilizando Cohttp. O curl2code é executado inteiramente no seu navegador através de WebAssembly — os seus dados permanecem privados. Para Rust, experimente o nosso conversor de curl para Rust. Para Elixir, veja curl para Elixir. Abaixo encontram-se exemplos de OCaml prontos a usar.

Como copiar o curl do seu navegador

  1. 1

    Abrir as DevTools

    Prima F12 ou Ctrl+Shift+I para abrir as ferramentas de programador do seu navegador.

  2. 2

    Ir para o separador Network

    Clique no separador Network e realize a ação que despoleta o pedido HTTP.

  3. 3

    Copiar como cURL

    Clique com o botão direito no pedido → CopyCopy as cURL. Depois cole-o acima.

Perguntas Frequentes

O que é o OCaml Cohttp?

Cohttp é a biblioteca padrão de cliente e servidor HTTP para OCaml. Suporta backends Lwt (threads leves) e Async para E/S concorrente. Instale com opam install cohttp-lwt-unix. Fornece uma API funcional e segura em termos de tipos para pedidos HTTP. O curl2code utiliza o Cohttp para todas as conversões OCaml.

Cohttp vs ocurl vs piaf — qual utilizar?

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

Como lidar com autenticação em OCaml?

Adicione um cabeçalho de Autorização ao pedido: Header.add headers "Authorization" ("Bearer " ^ token). Para autenticação Basic, codifique as credenciais em base64 utilizando 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 em OCaml?

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

Como lidar com erros em pedidos HTTP em OCaml?

O Cohttp com Lwt devolve promessas — utilize a sintaxe Lwt.catch ou try%lwt ... with para o tratamento de erros. Verifique o código de estado da resposta com Response.status response. O sistema de tipos do OCaml garante que lida com os casos de falha. Utilize pattern matching nos códigos de estado para um tratamento exaustivo.

Como fazer pedidos HTTP concorrentes em OCaml?

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

Como definir timeouts em OCaml?

Com Lwt, utilize Lwt.pick [request; Lwt_unix.sleep timeout >>= fun () -> Lwt.fail Timeout] para colocar um pedido em competição com um temporizador. O Cohttp não tem opções de timeout integradas — envolva a promessa Lwt com um combinador de timeout. Para repetições, implemente uma função recursiva com tentativas decrescentes.

Como utilizar um proxy em OCaml?

O Cohttp não tem suporte integrado para proxy. Utilize ocurl (bindings libcurl) para necessidades de proxy: defina a opção CURLOPT_PROXY. Alternativamente, defina a variável de ambiente HTTP_PROXY e configure a ligação para encaminhar através do host e porta do proxy manualmente.

Como enviar um pedido POST com um 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 utiliza Client.post ~body:(Cohttp_lwt.Body.of_string json) uri. O curl2code deteta automaticamente as flags -d/--data com conteúdo JSON e define o cabeçalho Content-Type apropriado no código Cohttp.

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

Passe curl -H "Authorization: Bearer YOUR_TOKEN" URL para o curl2code e este gera código Cohttp com o cabeçalho de autenticação: Header.add headers 'Authorization' 'Bearer YOUR_TOKEN'. O curl2code deteta tokens Bearer tanto de flags -H "Authorization: Bearer ..." como de --oauth2-bearer. Para Basic auth, utilize -u user:pass.

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

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

Links Úteis

Guias do curl

Converter curl para Outras Linguagens