Конвертувати 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 проти Req проти Tesla проти Finch — що вибрати?
HTTPoison — найбільш усталений і широко використовуваний. Req — новіший, «все включено» з повторами та автентифікацією. Tesla пропонує архітектуру middleware, подібну до 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 в 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-токена у 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
Знайдіть будь-який код завершення curl — причини, виправлення та поради з налагодження.
Завантаження файлів за допомогою curl
Зберігайте файли з -o, -O, слідкуйте за перенаправленнями, відновлюйте завантаження та інше.
SSL, TLS та проксі
Налаштування сертифікатів, версій TLS, HTTP/SOCKS-проксі та власного DNS.