Convertir curl a Clojure

curl2code convierte comandos curl a código Clojure utilizando clj-http. La conversión se ejecuta en su navegador a través de WebAssembly para una privacidad total. Para Elixir, consulte nuestro conversor de curl a Elixir. Para Java, vea curl a Java. A continuación se presentan ejemplos prácticos de Clojure.

Cómo copiar curl desde su navegador

  1. 1

    Abrir DevTools

    Presione F12 o Ctrl+Shift+I para abrir las herramientas de desarrollo de su navegador.

  2. 2

    Vaya a la pestaña Network

    Haga clic en la pestaña Network y realice la acción que activa la solicitud HTTP.

  3. 3

    Copiar como cURL

    Haga clic derecho en la solicitud → CopyCopy as cURL. Luego péguelo arriba.

Preguntas frecuentes

¿Qué es clj-http?

clj-http es la biblioteca de cliente HTTP más popular para Clojure, que envuelve Apache HttpComponents. Proporciona una API idiomática basada en datos con análisis automático de JSON/EDN, gestión de cookies y agrupación de conexiones. Añádelo a project.clj: [clj-http "3.x"]. curl2code utiliza clj-http para todas las conversiones de Clojure.

clj-http vs http-kit vs aleph — ¿cuál usar?

clj-http es síncrono, rico en funciones y el más utilizado. http-kit es ligero con soporte asíncrono, ideal para servidores que también realizan llamadas HTTP. aleph está construido sobre Netty para E/S asíncrona de alto rendimiento. Para lenguajes funcionales similares, consulta nuestro convertidor de curl a Elixir o curl a OCaml.

¿Cómo manejar la autenticación en Clojure?

Para autenticación Bearer, añade encabezados: (client/get url {:headers {"Authorization" "Bearer token"}'}). Para autenticación Basic, usa la opción integrada: {:basic-auth ["user" "pass"]}. clj-http también soporta OAuth y autenticación digest. curl2code convierte los flags -u y de encabezado a mapas idiomáticos de Clojure.

¿Cómo enviar datos de formulario multipart en Clojure?

Usa la opción :multipart: (client/post url {:multipart [{:name "file" :content (clojure.java.io/file "doc.pdf")} {:name "desc" :content "My file"}]}). clj-http maneja la generación de límites (boundary) y el Content-Type automáticamente. curl2code convierte los flags -F a este patrón de Clojure.

¿Cómo manejar errores HTTP en Clojure?

Por defecto, clj-http lanza ExceptionInfo en respuestas que no sean 2xx. Desactívalo con {:throw-exceptions false} para obtener el mapa de respuesta en su lugar. Comprueba (:status response). Usa try/catch con ex-data para extraer la respuesta de las excepciones.

¿Cómo realizar solicitudes HTTP asíncronas en Clojure?

Usa clj-http con {:async? true}, lo cual devuelve un future. O usa http-kit: (http/get url callback). Para solicitudes en paralelo, usa pmap o canales de core.async. Los futures de Clojure se ejecutan en el pool de hilos de la JVM. Para una concurrencia similar, consulta curl a Java.

¿Cómo establecer tiempos de espera en Clojure?

Pasa las opciones de tiempo de espera: (client/get url {:connection-timeout 10000 :socket-timeout 30000}). Los valores están en milisegundos. Para reintentos, usa la opción :retry-handler o envuélvelo en una función de reintento personalizada con retroceso exponencial. Estos se mapean a --connect-timeout y --max-time de curl.

¿Cómo usar un proxy en Clojure?

Establece el proxy en el mapa de opciones: (client/get url {:proxy-host "proxy" :proxy-port 8080}). Para proxies autenticados: añade :proxy-user y :proxy-pass. clj-http también soporta proxies SOCKS. curl2code convierte los flags -x y --proxy a las opciones de proxy de Clojure correctas.

¿Cómo enviar una solicitud POST con un cuerpo JSON en Clojure?

Convierte un comando curl POST como curl -X POST -H "Content-Type: application/json" -d '{"key":"value"}' URL a Clojure usando curl2code. El código generado utiliza (client/post url {:content-type :json :body (json/generate-string data)}). curl2code detecta automáticamente los flags -d/--data con contenido JSON y establece el encabezado Content-Type adecuado en el código de clj-http.

¿Cómo añadir autorización con token Bearer en Clojure?

Pasa curl -H "Authorization: Bearer YOUR_TOKEN" URL a curl2code y este generará código de clj-http con el encabezado de autorización: :headers {'Authorization' 'Bearer YOUR_TOKEN'}. curl2code detecta tokens Bearer tanto en los flags -H "Authorization: Bearer ..." como en --oauth2-bearer. Para Basic auth, utiliza -u user:pass.

¿Cómo configurar el encabezado Content-Type en Clojure?

curl2code convierte curl -H "Content-Type: application/json" URL a código de clj-http con el encabezado correcto: :content-type :json. Para los datos de -d, curl utiliza por defecto application/x-www-form-urlencoded; para subidas de formularios con -F, utiliza multipart/form-data. curl2code mapea cada uno a la API de clj-http correcta.

Enlaces útiles

Guías de curl

Convertir curl a otros lenguajes