Конвертировать curl в Elixir
Конвертируйте команды curl в код Elixir с помощью HTTPoison. curl2code работает полностью в вашем браузере через WebAssembly — ваши данные остаются конфиденциальными. Для Ruby попробуйте наш конвертер curl в Ruby. Для Go см. curl в Go. Ниже приведены готовые примеры на Elixir.
Как скопировать curl из браузера
- 1
Откройте DevTools
Нажмите F12 или Ctrl+Shift+I, чтобы открыть инструменты разработчика в браузере.
- 2
Перейдите на вкладку Network
Нажмите на вкладку Network и выполните действие, которое инициирует HTTP-запрос.
- 3
Скопируйте как cURL
Нажмите правой кнопкой мыши на запрос → Copy → Copy 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.