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
Abrir DevTools
Presione F12 o Ctrl+Shift+I para abrir las herramientas de desarrollo de su navegador.
- 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
Copiar como cURL
Haga clic derecho en la solicitud → Copy → Copy 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
Códigos de error de curl
Busca cualquier código de salida de curl — causas, soluciones y consejos de depuración.
Descargar archivos con curl
Guarda archivos con -o, -O, sigue redirecciones, reanuda descargas y más.
SSL, TLS y proxy
Configura certificados, versiones de TLS, proxies HTTP/SOCKS y DNS personalizado.