Как пользоваться
- Скопируйте запрос как curl, например из инструментов разработчика браузера (вкладка Network, правый клик, Copy as cURL) или из документации API.
- Вставьте его в поле. Перенос строк с \ допускается.
- Выберите JavaScript fetch, Node.js axios, Python requests или PHP cURL.
- Прочитайте примечания под кодом, затем скопируйте или скачайте результат.
Как это работает
Конвертер сначала разбивает команду на слова так, как это делает 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 могут не поддерживаться.
Конфиденциальность
Команда разбирается только в вашем браузере, запросы не отправляются. Ничего не загружается, не сохраняется и не попадает в аналитику.