Converter curl para Clojure

O curl2code converte comandos curl para código Clojure usando clj-http. A conversão é executada no seu navegador via WebAssembly para total privacidade. Para Elixir, confira nosso conversor de curl para Elixir. Para Java, veja curl para Java. Abaixo estão exemplos práticos de Clojure.

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 clj-http?

clj-http é a biblioteca de cliente HTTP mais popular para Clojure, envolvendo o Apache HttpComponents. Ela fornece uma API idiomática e orientada a dados com análise automática de JSON/EDN, gerenciamento de cookies e pool de conexões. Adicione ao project.clj: [clj-http "3.x"]. O curl2code usa clj-http para todas as conversões Clojure.

clj-http vs http-kit vs aleph — qual usar?

clj-http é síncrono, rico em recursos e o mais amplamente utilizado. http-kit é leve com suporte assíncrono, ótimo para servidores que também fazem chamadas HTTP. aleph é construído sobre o Netty para E/S assíncrona de alto desempenho. Para linguagens funcionais semelhantes, veja nosso conversor de curl para Elixir ou curl para OCaml.

Como lidar com autenticação no Clojure?

Para autenticação Bearer, adicione cabeçalhos: (client/get url {:headers {"Authorization" "Bearer token"}'}). Para autenticação Basic, use a opção integrada: {:basic-auth ["user" "pass"]}. O clj-http também suporta OAuth e autenticação digest. O curl2code converte as flags -u e de cabeçalho para mapas Clojure idiomáticos.

Como enviar dados de formulário multipart no Clojure?

Use a opção :multipart: (client/post url {:multipart [{:name "file" :content (clojure.java.io/file "doc.pdf")} {:name "desc" :content "My file"}]}). O clj-http gerencia a geração de boundary e o Content-Type automaticamente. O curl2code converte as flags -F para este padrão Clojure.

Como lidar com erros HTTP no Clojure?

Por padrão, o clj-http lança ExceptionInfo em respostas não-2xx. Desative com {:throw-exceptions false} para obter o mapa de resposta em vez disso. Verifique (:status response). Use try/catch com ex-data para extrair a resposta das exceções.

Como fazer requisições HTTP assíncronas no Clojure?

Use clj-http com {:async? true}, que retorna um future. Ou use http-kit: (http/get url callback). Para requisições paralelas, use pmap ou canais core.async. Os futures do Clojure rodam no pool de threads da JVM. Para concorrência semelhante, veja curl para Java.

Como definir timeouts no Clojure?

Passe as opções de timeout: (client/get url {:connection-timeout 10000 :socket-timeout 30000}). Os valores são em milissegundos. Para retentativas, use a opção :retry-handler ou envolva em uma função de retentativa personalizada com backoff exponencial. Estes mapeiam para --connect-timeout e --max-time do curl.

Como usar um proxy no Clojure?

Defina o proxy no mapa de opções: (client/get url {:proxy-host "proxy" :proxy-port 8080}). Para proxies autenticados: adicione :proxy-user e :proxy-pass. O clj-http também suporta proxies SOCKS. O curl2code converte as flags -x e --proxy para as opções de proxy corretas do Clojure.

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

Converta um comando curl POST como curl -X POST -H "Content-Type: application/json" -d '{"key":"value"}' URL para Clojure usando o curl2code. O código gerado usa (client/post url {:content-type :json :body (json/generate-string data)}). O curl2code detecta automaticamente as flags -d/--data com conteúdo JSON e define o cabeçalho Content-Type apropriado no código do clj-http.

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

Passe curl -H "Authorization: Bearer YOUR_TOKEN" URL para o curl2code e ele gerará o código do clj-http com o cabeçalho de autenticação: :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 Clojure?

O curl2code converte curl -H "Content-Type: application/json" URL para o código do clj-http com o cabeçalho correto: :content-type :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 clj-http.

Links úteis

Guias do curl

Converter curl para outras linguagens