Convertir curl en Elixir
Convertissez des commandes curl en code Elixir à l'aide de HTTPoison. curl2code s'exécute entièrement dans votre navigateur via WebAssembly — vos données restent privées. Pour Ruby, essayez notre convertisseur curl vers Ruby. Pour Go, voir curl vers Go. Vous trouverez ci-dessous des exemples Elixir prêts à l'emploi.
Comment copier curl depuis votre navigateur
- 1
Ouvrir les DevTools
Appuyez sur F12 ou Ctrl+Shift+I pour ouvrir les outils de développement de votre navigateur.
- 2
Aller dans l'onglet Network
Cliquez sur l'onglet Network et effectuez l'action qui déclenche la requête HTTP.
- 3
Copier comme cURL
Faites un clic droit sur la requête → Copy → Copy as cURL. Collez-la ensuite ci-dessus.
Foire Aux Questions
Qu'est-ce qu'Elixir HTTPoison ?
HTTPoison est le client HTTP le plus populaire pour Elixir, construit sur la bibliothèque Erlang hackney. Il fournit une API propre et fonctionnelle pour GET, POST, le streaming et les requêtes asynchrones. Ajoutez aux dépendances de mix.exs : {:httpoison, "~> 2.0"}. curl2code utilise HTTPoison par défaut pour les conversions Elixir.
HTTPoison vs Req vs Tesla vs Finch — lequel utiliser ?
HTTPoison est le plus établi et le plus utilisé. Req est plus récent, tout inclus avec tentatives et authentification. Tesla offre une architecture middleware comme Faraday. Finch est de bas niveau, haute performance pour une utilisation en production. Pour des approches fonctionnelles similaires, voir curl vers Clojure ou curl vers Ruby.
Comment gérer l'authentification en Elixir ?
Passez les en-têtes sous forme de liste de tuples de chaînes : HTTPoison.get(url, [{"Authorization", "Bearer token"}]). Pour l'authentification Basic, encodez user:pass avec Base.encode64/1 et ajoutez "Basic " en préfixe de la valeur. Faites du pattern matching sur la réponse pour {:ok, response} ou {:error, reason}. curl2code convertit les drapeaux -H et -u en Elixir idiomatique.
Comment envoyer des données de formulaire multipart en Elixir ?
Utilisez {:multipart, parts} comme corps : HTTPoison.post(url, {:multipart, [{:file, path, {"form-data", [{"name", "file"}, {"filename", "doc.pdf"}]}, []}]}). Pour les champs de formulaire simples, ajoutez des tuples {"key", "value"}. curl2code gère les drapeaux -F pour le multipart HTTPoison.
Comment gérer les erreurs dans les requêtes HTTP Elixir ?
HTTPoison renvoie des tuples étiquetés : {:ok, response} ou {:error, reason}. Faites correspondre le motif avec case ou with : case HTTPoison.get(url) do {:ok, %{status_code: 200}'} -> ... ; {:error, %{reason: reason}'} -> ... end. C'est l'idiome Elixir — une gestion d'erreurs explicite et exhaustive sans exceptions.
Comment faire des requêtes HTTP concurrentes en Elixir ?
Utilisez Task.async/1 et Task.await/1 : tasks = urls |> Enum.map(&Task.async(fn -> HTTPoison.get(&1) end)) puis results = tasks |> Enum.map(&Task.await/1). La VM BEAM d'Elixir gère efficacement des milliers de processus concurrents. Pour une concurrence similaire, voir curl vers Go.
Comment définir des délais d'expiration en Elixir ?
Passez les options à HTTPoison : HTTPoison.get(url, [], [timeout: 30_000, recv_timeout: 30_000]). timeout est le délai de connexion, recv_timeout est le délai de réponse (tous deux en millisecondes). Pour les tentatives, enveloppez dans une fonction récursive avec des tentatives décroissantes ou utilisez la tentative intégrée de la bibliothèque Req.
Comment utiliser un proxy en Elixir ?
Passez l'option proxy à HTTPoison : HTTPoison.get(url, [], [proxy: {"proxy.host", 8080}]). Pour les proxys authentifiés, utilisez proxy_auth: {"user", "pass"}. HTTPoison prend également en charge les proxys SOCKS5 via la bibliothèque hackney sous-jacente. curl2code convertit les drapeaux -x vers la configuration de proxy Elixir.
Comment envoyer une requête POST avec un corps JSON en Elixir ?
Convertissez une commande curl POST comme curl -X POST -H "Content-Type: application/json" -d '{"key":"value"}' URL en Elixir en utilisant curl2code. Le code généré utilise HTTPoison.post(url, Jason.encode!(body), [{'Content-Type', 'application/json'}]). curl2code détecte automatiquement les drapeaux -d/--data avec du contenu JSON et définit l'en-tête Content-Type approprié dans le code HTTPoison.
Comment ajouter une autorisation par jeton Bearer en Elixir ?
Passez curl -H "Authorization: Bearer YOUR_TOKEN" URL à curl2code et il générera le code HTTPoison avec l'en-tête d'authentification : [{'Authorization', 'Bearer YOUR_TOKEN'}]. curl2code détecte les jetons Bearer à partir des drapeaux -H "Authorization: Bearer ..." et --oauth2-bearer. Pour le Basic auth, utilisez -u user:pass.
Comment définir l''en-tête Content-Type en Elixir ?
curl2code convertit curl -H "Content-Type: application/json" URL en code HTTPoison avec l'en-tête approprié : [{'Content-Type', 'application/json'}]. Pour les données -d, curl utilise par défaut application/x-www-form-urlencoded ; pour les téléchargements de formulaires -F, il utilise multipart/form-data. curl2code associe chacun à l'API HTTPoison correcte.
Liens utiles
Guides curl
Codes d'erreur curl
Recherchez n'importe quel code de sortie curl — causes, corrections et astuces de débogage.
Télécharger des fichiers avec curl
Enregistrez des fichiers avec -o, -O, suivez les redirections, reprenez les téléchargements et plus encore.
SSL, TLS et proxy
Configurez les certificats, les versions TLS, les proxys HTTP/SOCKS et le DNS personnalisé.