Converti curl in Elixir
Converti i comandi curl in codice Elixir utilizzando HTTPoison. curl2code viene eseguito interamente nel tuo browser tramite WebAssembly — i tuoi dati rimangono privati. Per Ruby, prova il nostro convertitore da curl a Ruby. Per Go, vedi da curl a Go. Di seguito sono riportati esempi Elixir pronti all'uso.
Come copiare curl dal tuo browser
- 1
Apri DevTools
Premi F12 o Ctrl+Shift+I per aprire gli strumenti per sviluppatori del browser.
- 2
Vai alla scheda Network
Fai clic sulla scheda Network ed esegui l'azione che attiva la richiesta HTTP.
- 3
Copia come cURL
Fai clic con il tasto destro sulla richiesta → Copia → Copia come cURL. Quindi incollalo sopra.
Domande Frequenti
Cos'è Elixir HTTPoison?
HTTPoison è il client HTTP più popolare per Elixir, costruito sulla libreria Erlang hackney. Fornisce un'API pulita e funzionale per GET, POST, streaming e richieste asincrone. Aggiungi alle dipendenze di mix.exs: {:httpoison, "~> 2.0"}. curl2code usa HTTPoison come predefinito per le conversioni Elixir.
HTTPoison vs Req vs Tesla vs Finch — quale usare?
HTTPoison è il più affermato e ampiamente utilizzato. Req è più recente, con batterie incluse come retry e autenticazione. Tesla offre un'architettura middleware come Faraday. Finch è di basso livello, ad alte prestazioni per l'uso in produzione. Per approcci funzionali simili, vedi curl a Clojure o curl a Ruby.
Come gestire l'autenticazione in Elixir?
Passa gli header come una lista di tuple di stringhe: HTTPoison.get(url, [{"Authorization", "Bearer token"}]). Per l'autenticazione Basic, codifica user:pass con Base.encode64/1 e anteponi "Basic " al valore. Esegui il pattern match sulla risposta per {:ok, response} o {:error, reason}. curl2code converte i flag -H e -u in codice Elixir idiomatico.
Come inviare dati form multipart in Elixir?
Usa {:multipart, parts} come corpo: HTTPoison.post(url, {:multipart, [{:file, path, {"form-data", [{"name", "file"}, {"filename", "doc.pdf"}]}, []}]}). Per semplici campi form, aggiungi tuple {"key", "value"}. curl2code gestisce i flag -F per il multipart di HTTPoison.
Come gestire gli errori nelle richieste HTTP Elixir?
HTTPoison restituisce tuple taggate: {:ok, response} o {:error, reason}. Esegui il pattern match con case o with: case HTTPoison.get(url) do {:ok, %{status_code: 200}'} -> ... ; {:error, %{reason: reason}'} -> ... end. Questo è l'approccio idiomatico di Elixir: gestione degli errori esplicita ed esaustiva senza eccezioni.
Come effettuare richieste HTTP concorrenti in Elixir?
Usa Task.async/1 e Task.await/1: tasks = urls |> Enum.map(&Task.async(fn -> HTTPoison.get(&1) end)) quindi results = tasks |> Enum.map(&Task.await/1). La VM BEAM di Elixir gestisce migliaia di processi concorrenti in modo efficiente. Per una concorrenza simile, vedi curl a Go.
Come impostare i timeout in Elixir?
Passa le opzioni a HTTPoison: HTTPoison.get(url, [], [timeout: 30_000, recv_timeout: 30_000]). timeout è il timeout di connessione, recv_timeout è il timeout di risposta (entrambi in millisecondi). Per i retry, avvolgi in una funzione ricorsiva con tentativi decrescenti o usa il retry integrato della libreria Req.
Come usare un proxy in Elixir?
Passa l'opzione proxy a HTTPoison: HTTPoison.get(url, [], [proxy: {"proxy.host", 8080}]). Per i proxy autenticati, usa proxy_auth: {"user", "pass"}. HTTPoison supporta anche i proxy SOCKS5 tramite la libreria hackney sottostante. curl2code converte i flag -x nella configurazione proxy Elixir.
Come inviare una richiesta POST con un corpo JSON in Elixir?
Converti un comando curl POST come curl -X POST -H "Content-Type: application/json" -d '{"key":"value"}' URL in Elixir usando curl2code. Il codice generato utilizza HTTPoison.post(url, Jason.encode!(body), [{'Content-Type', 'application/json'}]). curl2code rileva automaticamente i flag -d/--data con contenuto JSON e imposta l'intestazione Content-Type appropriata nel codice HTTPoison.
Come aggiungere l''autorizzazione con Bearer token in Elixir?
Passa curl -H "Authorization: Bearer YOUR_TOKEN" URL a curl2code e genererà il codice HTTPoison con l'intestazione di autenticazione: [{'Authorization', 'Bearer YOUR_TOKEN'}]. curl2code rileva i Bearer token sia dai flag -H "Authorization: Bearer ..." che --oauth2-bearer. Per la Basic auth, usa -u user:pass.
Come impostare l''intestazione Content-Type in Elixir?
curl2code converte curl -H "Content-Type: application/json" URL in codice HTTPoison con l'intestazione corretta: [{'Content-Type', 'application/json'}]. Per i dati -d, curl utilizza come predefinito application/x-www-form-urlencoded; per i caricamenti di moduli -F, utilizza multipart/form-data. curl2code mappa ciascuno alla corretta API di HTTPoison.