Convertir curl a Elixir
Convierta comandos curl a código Elixir utilizando HTTPoison. curl2code se ejecuta completamente en su navegador a través de WebAssembly; sus datos permanecen privados. Para Ruby, pruebe nuestro conversor de curl a Ruby. Para Go, vea curl a Go. A continuación se muestran ejemplos de Elixir listos para usar.
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 Elixir HTTPoison?
HTTPoison es el cliente HTTP más popular para Elixir, construido sobre la biblioteca hackney de Erlang. Proporciona una API limpia y funcional para solicitudes GET, POST, streaming y asíncronas. Añádelo a las dependencias de mix.exs: {:httpoison, "~> 2.0"}. curl2code utiliza HTTPoison como predeterminado para las conversiones de Elixir.
HTTPoison vs Req vs Tesla vs Finch — ¿cuál usar?
HTTPoison es el más establecido y utilizado. Req es más reciente, incluye todo lo necesario con reintentos y autenticación. Tesla ofrece una arquitectura de middleware como Faraday. Finch es de bajo nivel y alto rendimiento para uso en producción. Para enfoques funcionales similares, consulta curl a Clojure o curl a Ruby.
¿Cómo manejar la autenticación en Elixir?
Pase los encabezados como una lista de tuplas de cadenas: HTTPoison.get(url, [{"Authorization", "Bearer token"}]). Para autenticación Basic, codifique user:pass con Base.encode64/1 y anteponga "Basic " al valor. Haga pattern matching en la respuesta para {:ok, response} o {:error, reason}. curl2code convierte los flags -H y -u a Elixir idiomático.
¿Cómo enviar datos de formulario multipart en Elixir?
Usa {:multipart, parts} como cuerpo: HTTPoison.post(url, {:multipart, [{:file, path, {"form-data", [{"name", "file"}, {"filename", "doc.pdf"}]}, []}]}). Para campos de formulario simples, añade tuplas {"key", "value"}. curl2code maneja los flags -F para el multipart de HTTPoison.
¿Cómo manejar errores en las solicitudes HTTP de Elixir?
HTTPoison devuelve tuplas etiquetadas: {:ok, response} o {:error, reason}. Realiza una coincidencia de patrones con case o with: case HTTPoison.get(url) do {:ok, %{status_code: 200}'} -> ... ; {:error, %{reason: reason}'} -> ... end. Esto es idiomático en Elixir — un manejo de errores explícito y exhaustivo sin excepciones.
¿Cómo realizar solicitudes HTTP concurrentes en Elixir?
Usa Task.async/1 y Task.await/1: tasks = urls |> Enum.map(&Task.async(fn -> HTTPoison.get(&1) end)) y luego results = tasks |> Enum.map(&Task.await/1). La VM BEAM de Elixir maneja miles de procesos concurrentes de manera eficiente. Para una concurrencia similar, consulta curl a Go.
¿Cómo establecer tiempos de espera en Elixir?
Pasa las opciones a HTTPoison: HTTPoison.get(url, [], [timeout: 30_000, recv_timeout: 30_000]). timeout es el tiempo de espera de conexión, recv_timeout es el tiempo de espera de respuesta (ambos en milisegundos). Para reintentos, envuélvelo en una función recursiva con intentos decrecientes o usa el reintento integrado de la biblioteca Req.
¿Cómo usar un proxy en Elixir?
Pasa la opción de proxy a HTTPoison: HTTPoison.get(url, [], [proxy: {"proxy.host", 8080}]). Para proxies autenticados, usa proxy_auth: {"user", "pass"}. HTTPoison también soporta proxies SOCKS5 a través de la biblioteca hackney subyacente. curl2code convierte los flags -x a la configuración de proxy de Elixir.
¿Cómo enviar una solicitud POST con un cuerpo JSON en Elixir?
Convierte un comando curl POST como curl -X POST -H "Content-Type: application/json" -d '{"key":"value"}' URL a Elixir usando curl2code. El código generado utiliza HTTPoison.post(url, Jason.encode!(body), [{'Content-Type', 'application/json'}]). curl2code detecta automáticamente los flags -d/--data con contenido JSON y establece el encabezado Content-Type adecuado en el código de HTTPoison.
¿Cómo añadir autorización con token Bearer en Elixir?
Pasa curl -H "Authorization: Bearer YOUR_TOKEN" URL a curl2code y este generará código de HTTPoison con el encabezado de autorización: [{'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 Elixir?
curl2code convierte curl -H "Content-Type: application/json" URL a código de HTTPoison con el encabezado correcto: [{'Content-Type', 'application/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 HTTPoison 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.