Converter curl para Elixir
Converta comandos curl para código Elixir usando HTTPoison. O curl2code é executado inteiramente no seu navegador via WebAssembly — seus dados permanecem privados. Para Ruby, tente nosso conversor de curl para Ruby. Para Go, veja curl para Go. Abaixo estão exemplos de Elixir prontos para usar.
Como copiar o curl do seu navegador
- 1
Abra o DevTools
Pressione F12 ou Ctrl+Shift+I para abrir as ferramentas de desenvolvedor do seu navegador.
- 2
Vá para a aba Network
Clique na aba Network e realize a ação que dispara a requisição HTTP.
- 3
Copiar como cURL
Clique com o botão direito na requisição → Copy → Copy as cURL. Depois cole acima.
Perguntas Frequentes
O que é o Elixir HTTPoison?
HTTPoison é o cliente HTTP mais popular para Elixir, construído sobre a biblioteca Erlang hackney. Ele fornece uma API limpa e funcional para GET, POST, streaming e requisições assíncronas. Adicione às dependências do mix.exs: {:httpoison, "~> 2.0"}. O curl2code usa HTTPoison como padrão para conversões Elixir.
HTTPoison vs Req vs Tesla vs Finch — qual usar?
HTTPoison é o mais estabelecido e amplamente utilizado. Req é mais novo, completo com retentativas e autenticação. Tesla oferece arquitetura de middleware como o Faraday. Finch é de baixo nível e alto desempenho para uso em produção. Para abordagens funcionais semelhantes, veja curl para Clojure ou curl para Ruby.
Como lidar com autenticação no Elixir?
Passe os cabeçalhos como uma lista de tuplas de strings: HTTPoison.get(url, [{"Authorization", "Bearer token"}]). Para autenticação Basic, codifique user:pass com Base.encode64/1 e adicione o prefixo "Basic " ao valor. Faça pattern matching na resposta para {:ok, response} ou {:error, reason}. O curl2code converte os flags -H e -u para código Elixir idiomático.
Como enviar dados de formulário multipart no Elixir?
Use {:multipart, parts} como o corpo: HTTPoison.post(url, {:multipart, [{:file, path, {"form-data", [{"name", "file"}, {"filename", "doc.pdf"}]}, []}]}). Para campos de formulário simples, adicione tuplas {"key", "value"}. O curl2code lida com flags -F para multipart HTTPoison.
Como lidar com erros em requisições HTTP no Elixir?
O HTTPoison retorna tuplas marcadas: {:ok, response} ou {:error, reason}. Use pattern matching com case ou with: case HTTPoison.get(url) do {:ok, %{status_code: 200}'} -> ... ; {:error, %{reason: reason}'} -> ... end. Isso é o Elixir idiomático — tratamento de erros explícito e exaustivo sem exceções.
Como fazer requisições HTTP concorrentes no Elixir?
Use Task.async/1 e Task.await/1: tasks = urls |> Enum.map(&Task.async(fn -> HTTPoison.get(&1) end)) e depois results = tasks |> Enum.map(&Task.await/1). A VM BEAM do Elixir gerencia milhares de processos concorrentes de forma eficiente. Para concorrência semelhante, veja curl para Go.
Como definir timeouts no Elixir?
Passe opções para o HTTPoison: HTTPoison.get(url, [], [timeout: 30_000, recv_timeout: 30_000]). timeout é o timeout de conexão, recv_timeout é o timeout de resposta (ambos em milissegundos). Para retentativas, envolva em uma função recursiva com tentativas decrescentes ou use a retentativa integrada da biblioteca Req.
Como usar um proxy no Elixir?
Passe a opção de proxy para o HTTPoison: HTTPoison.get(url, [], [proxy: {"proxy.host", 8080}]). Para proxies autenticados, use proxy_auth: {"user", "pass"}. O HTTPoison também suporta proxies SOCKS5 através da biblioteca hackney subjacente. O curl2code converte as flags -x para a configuração de proxy Elixir.
Como enviar uma requisição POST com corpo JSON em Elixir?
Converta um comando curl POST como curl -X POST -H "Content-Type: application/json" -d '{"key":"value"}' URL para Elixir usando o curl2code. O código gerado usa HTTPoison.post(url, Jason.encode!(body), [{'Content-Type', 'application/json'}]). O curl2code detecta automaticamente as flags -d/--data com conteúdo JSON e define o cabeçalho Content-Type apropriado no código do HTTPoison.
Como adicionar autorização com token Bearer em Elixir?
Passe curl -H "Authorization: Bearer YOUR_TOKEN" URL para o curl2code e ele gerará o código do HTTPoison com o cabeçalho de autenticação: [{'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 Elixir?
O curl2code converte curl -H "Content-Type: application/json" URL para o código do HTTPoison com o cabeçalho correto: [{'Content-Type', 'application/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 HTTPoison.