Converter curl para Elixir
Converta comandos curl para código Elixir utilizando HTTPoison. O curl2code é executado inteiramente no seu navegador através de WebAssembly — os seus dados permanecem privados. Para Ruby, experimente o nosso conversor de curl para Ruby. Para Go, veja curl para Go. Abaixo encontram-se exemplos de Elixir prontos a usar.
Como copiar o curl do seu navegador
- 1
Abrir as DevTools
Prima F12 ou Ctrl+Shift+I para abrir as ferramentas de programador do seu navegador.
- 2
Ir para o separador Network
Clique no separador Network e realize a ação que despoleta o pedido HTTP.
- 3
Copiar como cURL
Clique com o botão direito no pedido → Copy → Copy as cURL. Depois cole-o acima.
Perguntas Frequentes
O que é o Elixir HTTPoison?
HTTPoison é o cliente HTTP mais popular para Elixir, construído sobre a biblioteca Erlang hackney. Fornece uma API limpa e funcional para GET, POST, streaming e pedidos assíncronos. Adicione às dependências no mix.exs: {:httpoison, "~> 2.0"}. O curl2code utiliza o 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 recente, inclui tudo o que é necessário com repetições e autenticação. Tesla oferece uma arquitetura de middleware como o Faraday. Finch é de baixo nível, de alto desempenho para uso em produção. Para abordagens funcionais semelhantes, consulte curl para Clojure ou curl para Ruby.
Como gerir a autenticação em Elixir?
Passe os cabeçalhos como uma lista de tuplos de strings: HTTPoison.get(url, [{"Authorization", "Bearer token"}]). Para autenticação Basic, codifique user:pass com Base.encode64/1 e prefixe "Basic " ao valor. Faça pattern match da resposta para {:ok, response} ou {:error, reason}. O curl2code converte as flags -H e -u para Elixir idiomático.
Como enviar dados de formulário multipart em Elixir?
Use {:multipart, parts} como corpo: HTTPoison.post(url, {:multipart, [{:file, path, {"form-data", [{"name", "file"}, {"filename", "doc.pdf"}]}, []}]}). Para campos de formulário simples, adicione tuplos {"key", "value"}. O curl2code gere as flags -F para multipart HTTPoison.
Como gerir erros em pedidos HTTP Elixir?
O HTTPoison devolve tuplos etiquetados: {:ok, response} ou {:error, reason}. Faça pattern match com case ou with: case HTTPoison.get(url) do {:ok, %{status_code: 200}'} -> ... ; {:error, %{reason: reason}'} -> ... end. Isto é Elixir idiomático — gestão de erros explícita e exaustiva sem exceções.
Como fazer pedidos HTTP concorrentes em 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 BEAM VM do Elixir gere milhares de processos concorrentes de forma eficiente. Para concorrência semelhante, consulte curl para Go.
Como definir timeouts em Elixir?
Passe as opções ao HTTPoison: HTTPoison.get(url, [], [timeout: 30_000, recv_timeout: 30_000]). timeout é o timeout de ligação, recv_timeout é o timeout de resposta (ambos em milissegundos). Para repetições, envolva numa função recursiva com tentativas decrescentes ou use a repetição integrada da biblioteca Req.
Como usar um proxy em Elixir?
Passe a opção de proxy ao 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 um pedido POST com um 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 utiliza HTTPoison.post(url, Jason.encode!(body), [{'Content-Type', 'application/json'}]). O curl2code deteta automaticamente as flags -d/--data com conteúdo JSON e define o cabeçalho Content-Type apropriado no código HTTPoison.
Como adicionar autorização com token Bearer em Elixir?
Passe curl -H "Authorization: Bearer YOUR_TOKEN" URL para o curl2code e este gera código HTTPoison com o cabeçalho de autenticação: [{'Authorization', 'Bearer YOUR_TOKEN'}]. O curl2code deteta tokens Bearer tanto de flags -H "Authorization: Bearer ..." como de --oauth2-bearer. Para Basic auth, utilize -u user:pass.
Como definir o cabeçalho Content-Type em Elixir?
O curl2code converte curl -H "Content-Type: application/json" URL para código HTTPoison com o cabeçalho correto: [{'Content-Type', 'application/json'}]. Para dados -d, o curl assume por defeito application/x-www-form-urlencoded; para envios de formulários -F, utiliza multipart/form-data. O curl2code mapeia cada um para a API HTTPoison correta.
Links Úteis
Guias do curl
Códigos de erro do curl
Consulte qualquer código de saída do curl — causas, correções e dicas de depuração.
Transferir ficheiros com curl
Guarde ficheiros com -o, -O, siga redirecionamentos, retome transferências e mais.
SSL, TLS e proxy
Configure certificados, versões TLS, proxies HTTP/SOCKS e DNS personalizado.