Конвертиране на curl в Elixir

Конвертирайте curl команди в Elixir код, използвайки HTTPoison. curl2code работи изцяло във вашия браузър чрез WebAssembly — вашите данни остават поверителни. За Ruby опитайте нашия curl към Ruby конвертор. За Go вижте curl към Go. По-долу са дадени готови за употреба Elixir примери.

Как да копирате curl от вашия браузър

  1. 1

    Отворете DevTools

    Натиснете F12 или Ctrl+Shift+I, за да отворите инструментите за разработчици на вашия браузър.

  2. 2

    Отидете в раздела Network

    Кликнете върху раздела Network и извършете действието, което задейства HTTP заявката.

  3. 3

    Копирайте като cURL

    Кликнете с десния бутон върху заявката → CopyCopy as cURL. След това я поставете по-горе.

Често задавани въпроси

Какво е Elixir HTTPoison?

HTTPoison е най-популярният HTTP клиент за Elixir, изграден върху Erlang библиотеката hackney. Той предоставя чист, функционален API за GET, POST, стрийминг и асинхронни заявки. Добавете към deps в mix.exs: {:httpoison, "~> 2.0"}. curl2code използва HTTPoison като стандарт за Elixir конверсии.

HTTPoison срещу Req срещу Tesla срещу Finch — кое да използвам?

HTTPoison е най-утвърденият и широко използван. Req е по-нов, с включени функции за повторни опити и автентикация. Tesla предлага архитектура с middleware като Faraday. Finch е на ниско ниво, с висока производителност за продукционна употреба. За подобни функционални подходи вижте curl към Clojure или curl към Ruby.

Как да се справя с автентикацията в Elixir?

Подайте хедърите като списък от низови тюпли: HTTPoison.get(url, [{"Authorization", "Bearer token"}]). За Basic auth кодирайте user:pass с Base.encode64/1 и добавете "Basic " като префикс на стойността. Направете pattern match на отговора за {:ok, response} или {:error, reason}. curl2code конвертира флаговете -H и -u в идиоматичен Elixir.

Как да изпратя multipart form data в Elixir?

Използвайте {:multipart, parts} като тяло: HTTPoison.post(url, {:multipart, [{:file, path, {"form-data", [{"name", "file"}, {"filename", "doc.pdf"}]}, []}]}). За прости полета на формата добавете тюпли {"key", "value"}. curl2code обработва флаговете -F за HTTPoison multipart.

Как да се справя с грешки в Elixir HTTP заявки?

HTTPoison връща тагнати тюпли (tagged tuples): {:ok, response} или {:error, reason}. Използвайте pattern matching с case или with: case HTTPoison.get(url) do {:ok, %{status_code: 200}'} -> ... ; {:error, %{reason: reason}'} -> ... end. Това е идиоматично за Elixir — изрично и изчерпателно управление на грешките без изключения.

Как да правя паралелни HTTP заявки в Elixir?

Използвайте Task.async/1 и Task.await/1: tasks = urls |> Enum.map(&Task.async(fn -> HTTPoison.get(&1) end)) след това results = tasks |> Enum.map(&Task.await/1). BEAM VM на Elixir управлява хиляди паралелни процеси ефективно. За подобна конкурентност вижте curl към Go.

Как да задам таймаути в Elixir?

Предайте опции на HTTPoison: HTTPoison.get(url, [], [timeout: 30_000, recv_timeout: 30_000]). timeout е таймаутът за връзка, recv_timeout е таймаутът за отговор (и двата в милисекунди). За повторни опити обвийте в рекурсивна функция с намаляващ брой опити или използвайте вградените повторения на библиотеката Req.

Как да използвам прокси в Elixir?

Предайте опция за прокси на HTTPoison: HTTPoison.get(url, [], [proxy: {"proxy.host", 8080}]). За проксита с автентикация използвайте proxy_auth: {"user", "pass"}. HTTPoison също поддържа SOCKS5 проксита чрез базовата библиотека hackney. curl2code конвертира флаговете -x в Elixir конфигурация за прокси.

Как се изпраща POST заявка с JSON тяло в Elixir?

Конвертирайте curl POST команда като curl -X POST -H "Content-Type: application/json" -d '{"key":"value"}' URL в Elixir чрез curl2code. Генерираният код използва HTTPoison.post(url, Jason.encode!(body), [{'Content-Type', 'application/json'}]). curl2code автоматично разпознава -d/--data флагове с JSON съдържание и задава съответната Content-Type заглавна част в HTTPoison кода.

Как се добавя Bearer token оторизация в Elixir?

Подайте curl -H "Authorization: Bearer YOUR_TOKEN" URL на curl2code и той ще генерира HTTPoison код със заглавна част за оторизация: [{'Authorization', 'Bearer YOUR_TOKEN'}]. curl2code разпознава Bearer токени както от -H "Authorization: Bearer ...", така и от --oauth2-bearer флагове. За Basic auth използвайте -u user:pass.

Как се задава Content-Type заглавна част в Elixir?

curl2code конвертира curl -H "Content-Type: application/json" URL в HTTPoison код с правилната заглавна част: [{'Content-Type', 'application/json'}]. За -d данни, curl използва по подразбиране application/x-www-form-urlencoded; за -F качване на формуляри, използва multipart/form-data. curl2code свързва всеки от тях с правилния HTTPoison API.

Полезни връзки

Ръководства за curl

Конвертиране на curl в други езици