tigtools

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

Вставьте команду curl, например скопированную из инструментов разработчика браузера или документации API, и получите эквивалентный код на нужном языке.

Работает в браузере Без регистрации

Язык

Как пользоваться

  1. Скопируйте запрос как curl, например из инструментов разработчика браузера (вкладка Network, правый клик, Copy as 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 оставляется библиотеке, чтобы граница была правильной.

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

Инструмент только генерирует код. Он никогда не отправляет запрос, поэтому токены и пароли из команды нигде не используются.

Примеры

Воспроизведение запроса из браузера в Python

Скопируйте неудачный вызов API из вкладки Network в Chrome как cURL и преобразуйте его в код для Python requests. Заголовки, cookie и 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: "" } и тело в кодировке формы.

Загрузка файла в 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 или cookie из команды не используются и не сохраняются.

Почему -k/--insecure не конвертируется?

Отключение проверки сертификата делает соединение уязвимым для перехвата. В сгенерированном коде проверка остаётся включённой; если сертификат сервера не является доверенным, исправьте сертификат или хранилище доверенных сертификатов.

Почему я получаю сообщение «option is not supported»?

Конвертер обрабатывает только те параметры, поведение которых можно точно воспроизвести. Прокси, клиентские сертификаты, cookie jar и подобные параметры отклоняются, чтобы сгенерированный код не отличался по поведению от curl.

Работает ли он с командами Windows cmd?

Лучше всего работают команды, скопированные как «cURL (bash)». Windows cmd использует ^ для переноса строк и другие правила цитирования; символы ^ в конце строк принимаются, но другие escape-последовательности cmd могут не поддерживаться.

Конфиденциальность

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