tigtools

Конвертер cURL у код

Вставте curl-команду, наприклад скопійовану з інструментів розробника браузера або з документації API, і отримайте еквівалентний код вашою мовою.

Працює у вашому браузері Без реєстрації

Мова

Як користуватися

  1. Скопіюйте запит як curl, наприклад із інструментів розробника браузера (вкладка Network, права кнопка миші → Копіювати як cURL) або з документації API.
  2. Вставте його в поле. Продовження рядків за допомогою \ підтримуються.
  3. Виберіть JavaScript fetch, Node.js axios, Python requests або PHP cURL.
  4. Прочитайте примітки під кодом, потім скопіюйте або завантажте результат.

Як це працює

Конвертер спершу розбиває команду на слова так, як це робить POSIX-оболонка: розуміються одинарні лапки, подвійні лапки з екрануванням зворотною косою рискою, рядки $'…' і продовження рядків зворотною косою рискою. Змінні оболонки, як-от $TOKEN, не розкриваються; вони залишаються текстом.

Підтримувані опції curl: URL (або --url), -X/--request, -H/--header, -d/--data, --data-ascii, --data-raw, --data-binary, --data-urlencode, --json, -F/--form і --form-string (поля та завантаження @file з ;type=), -u/--user, -G/--get, -I/--head, -A/--user-agent, -e/--referer, -b/--cookie (рядки cookie), -L/--location і --compressed. Короткі опції можна поєднувати, як-от -sSL, а значення можна приєднувати, як-от -XPOST.

Правила відповідають поведінці curl: кілька значень -d об’єднуються через &; дані роблять запит POST, якщо -X або -G не вказують іншого; -G додає дані до URL як рядок запиту; --json встановлює заголовки Content-Type і Accept у application/json. Коли тіло є JSON і це зазначено в Content-Type, код надсилає справжній об’єкт (json= у Python, масив через json_encode у PHP) замість екранованого рядка. Для multipart-форм заголовок Content-Type залишається на розсуд бібліотеки, щоб boundary був правильним.

-k/--insecure свідомо ігнорується, і це пояснюється в примітці. Опції, які змінюють лише власний вивід curl (-s, -S, -v, -i, -o, --fail тощо), ігноруються з приміткою. Будь-яка інша опція викликає чітку помилку з її назвою, а не код, який мовчки робить щось інше. Залишається одна відмінність: curl переходить за перенаправленнями лише з -L, тоді як fetch, axios і requests роблять це за замовчуванням; PHP-код робить це лише тоді, коли вказано -L.

Інструмент лише створює код. Він ніколи не надсилає запит, тому токени та паролі з команди ніде не використовуються.

Приклади

Відтворення браузерного запиту в Python

Скопіюйте проблемний API-виклик із вкладки Network у Chrome як cURL і перетворіть його на Python requests. Заголовки, cookies і JSON-тіло переносяться, тож ви зможете відтворити помилку в скрипті.

Використання документації API в Node.js

У прикладі з документації API показано: “curl -u key: https://api.example.com/v1/charges -d amount=2000 -d currency=eur”. Варіант для axios використовує auth: { username: "key", password: "" } і тіло у форматі form-encoded.

Завантаження файлу в PHP

Команда “curl -F 'file=@invoice.pdf;type=application/pdf' -F 'note=March' https://x.io/upload” перетворюється на CURLOPT_POSTFIELDS із new CURLFile('invoice.pdf', 'application/pdf') та полем note.

Поширені запитання

Чи надсилає цей інструмент мій запит?

Ні. Він лише розбирає текст команди та генерує код. Жоден запит не виконується, тому ключі API або cookies з команди не використовуються й не зберігаються.

Чому -k/--insecure не перетворюється?

Вимкнення перевірки сертифіката робить з’єднання відкритим для перехоплення. Згенерований код залишає перевірку ввімкненою; якщо сертифікат сервера не довірений, натомість виправте сертифікат або довірче сховище.

Чому я отримую «option is not supported»?

Конвертер перетворює лише ті опції, значення яких може точно відтворити. Проксі, клієнтські сертифікати, сховища cookie та подібні опції відхиляються, щоб ви не отримали код, який поводиться інакше, ніж curl.

Чи працює це з командами Windows cmd?

Найкраще працюють команди, скопійовані як «cURL (bash)». Windows cmd використовує ^ для продовження рядка та інші правила лапок; ^ у кінці рядків приймається, але інші escape-послідовності cmd можуть не підтримуватися.

Конфіденційність

Команда обробляється лише у вашому браузері, жоден запит не надсилається. Нічого не завантажується, не зберігається й не потрапляє в аналітику.