Конвертировать 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, потоковой передачи и асинхронных запросов. Добавьте в зависимости mix.exs: {:httpoison, "~> 2.0"}. curl2code использует HTTPoison по умолчанию для преобразований в Elixir.

HTTPoison vs Req vs Tesla vs Finch — что выбрать?

HTTPoison — самый проверенный и широко используемый. Req — более новый, «всё включено», с повторами и аутентификацией. Tesla предлагает архитектуру мидлваров, как Faraday. Finch — низкоуровневый и высокопроизводительный для продакшена. Для похожих функциональных подходов см. curl в Clojure или curl в Ruby.

Как обрабатывать аутентификацию в Elixir?

Передайте заголовки как список строковых кортежей: HTTPoison.get(url, [{"Authorization", "Bearer token"}]). Для Basic-аутентификации закодируйте user:pass с помощью Base.encode64/1 и добавьте "Basic " в начало значения. Используйте сопоставление с образцом: {: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 для multipart в HTTPoison.

Как обрабатывать ошибки в HTTP-запросах Elixir?

HTTPoison возвращает тегированные кортежи: {:ok, response} или {:error, reason}. Используйте сопоставление с образцом через 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 tokens как в флагах -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 сопоставляет каждый вариант с подходящим API HTTPoison.

Полезные ссылки

Руководства по curl

Конвертировать curl в другие языки