Генератор и конструктор curl-команд
Создавайте curl-команды прямо в браузере: метод, заголовки, авторизация, тело — готовая команда мгновенно. Пресеты для Bearer, POST JSON, загрузки файлов. Бесплатно, приватно, без регистрации.
Наша команда проверяет конструктор curl-команд на соответствие реальному поведению curl для HTTP-методов (GET/POST/PUT/PATCH/DELETE), схем аутентификации (Bearer, Basic, заголовки API-ключа), типов тела (сырой JSON, urlencoded-форма, multipart-загрузка файлов) и флагов параметров (-L, -k, -v, -i, --compressed, -o, таймауты, прокси) — с безопасным экранированием одинарных кавычек для shell и правильным кодированием строки запроса.
Что такое curl-команда?
curl — это инструмент командной строки для передачи данных по HTTP и десяткам других протоколов. Команда curl состоит из имени бинарного файла, набора флагов и URL — например curl -X POST https://api.example.com/users -H 'Content-Type: application/json' -d '{"name":"Ada"}'. Поскольку curl входит в поставку практически каждой системы Linux, macOS и современного Windows, это универсальный способ протестировать API, воспроизвести запрос из документации или проверить работоспособность сервиса из CI-скрипта. Краткость, которая делает его мощным, одновременно затрудняет запоминание — именно для этого и нужен визуальный конструктор.
Каждая curl-команда имеет одинаковую анатомию. Метод (-X GET, -X POST, …) задаёт HTTP-глагол, по умолчанию равный GET. URL — это эндпоинт, к которому после ? добавляются параметры запроса. Заголовки (-H 'Key: Value', повторяемые) несут метаданные: Accept и Content-Type. Аутентификация — это просто специальный заголовок: -H 'Authorization: Bearer …' для токена, -u user:pass для Basic auth или кастомный -H 'X-API-Key: …'. Тело (-d для сырых или form-данных, -F для multipart и загрузки файлов) несёт payload. Наконец, флаги параметров -L (следовать редиректам), -i (включить заголовки ответа) и -v (подробный вывод) определяют поведение. Этот инструмент отображает каждую из этих частей как поле формы и перестраивает команду в режиме реального времени.
Используйте генератор curl-команд, когда иначе пришлось бы мучиться с кавычками, забывать заголовок Content-Type в JSON POST или вручную собирать multipart-загрузку. Конструктор правильно экранирует одинарные кавычки для shell, кодирует строку запроса и добавляет правильные заголовки для каждого типа тела — и вы получаете команду, которой можно доверять. Исчерпывающий справочник по флагам с 40+ исполняемыми примерами читайте в сопроводительной шпаргалке по curl; для кодирования сложных значений строки запроса используйте наш URL-энкодер.
Всё происходит в вашем браузере. Ваши токены, учётные данные, URL и тела запросов собираются клиентским JavaScript и никуда не отправляются — вы можете строить команды для реальных боевых эндпоинтов с реальными API-ключами, и ничто не покинет ваше устройство.
# Plain GET — curl defaults to GET
curl https://api.example.com/users
# GET with a Bearer token (auth is just a header)
curl https://api.example.com/me \
-H 'Authorization: Bearer YOUR_TOKEN'
# POST a JSON body — note the Content-Type header
curl -X POST https://api.example.com/users \
-H 'Content-Type: application/json' \
-d '{"name":"Ada","role":"admin"}'
# Multipart file upload — '@' reads the file from disk
curl -X POST https://api.example.com/upload \
-F 'file=@report.pdf' \
-F 'title=Q3 report' Ключевые возможности
Визуальный конструктор запросов
Задайте весь запрос через поля формы — метод, URL, параметры запроса, заголовки, авторизация, тело и параметры — вместо запоминания порядка флагов и кавычек. Больше не нужно гадать, куда поставить URL: до или после -d.
Живая команда с копированием и экспортом
curl-команда перестраивается при каждом нажатии клавиши внизу страницы. Скопируйте её в буфер обмена одним кликом или выполните Export .sh для скачивания исполняемого shell-скрипта, который можно сразу добавить в репозиторий или CI-задание.
Полная поддержка аутентификации
Bearer-токен, Basic auth (-u user:pass) и кастомные заголовки API-ключа — каждый в точном формате, который ожидают серверы. Выберите схему, вставьте учётные данные, и правильный заголовок Authorization или кастомный заголовок будет сгенерирован за вас.
Все типы тела запроса
Сырой JSON (с автоматически добавляемым заголовком Content-Type), поля формы application/x-www-form-urlencoded и multipart/form-data-загрузки, где любое поле можно переключить в файл с префиксом @.
Шесть пресетов в один клик
GET с Bearer, POST JSON, загрузка формы, Basic auth, Download -o и Verbose debug — заполняют всю форму одним нажатием. Начните с рабочего запроса для самых распространённых задач API и настройте его.
Многострочный и однострочный вывод
Переключайтесь между компактной однострочной командой для быстрой вставки и многострочной версией с обратными слешами, удобной для чтения в скрипте или review в pull request. Одна команда — два формата.
100% приватность в браузере
Токены, URL, заголовки и тела запросов собираются полностью на стороне клиента и никогда не покидают ваше устройство — проверьте это во вкладке Network. Безопасно для боевых эндпоинтов и живых учётных данных без какой-либо утечки данных.
Создан для работы с DevTools
Разработан для повседневного цикла тестирования API и воспроизведения запросов из браузерных DevTools через «Copy as cURL». Вкладка Convert, которая парсит вставленную curl-команду в fetch, requests, Go, PHP, Ruby и Node.js, появится в следующем релизе.
Альтернативы curl и HTTP-клиенты
HTTPie
CLI, человекопонятный синтаксисСовременный CLI с цветным выводом и более кратким синтаксисом (http POST api.example.com/users name=Ada). По умолчанию устанавливает JSON Content-Type. Удобнее для интерактивного использования; curl выигрывает по повсеместности и переносимости в скриптах.
wget
CLI, ориентирован на скачиваниеЛучший выбор для рекурсивного скачивания и зеркалирования сайтов; по умолчанию следует редиректам и повторяет попытки. Слабее curl для произвольных методов, кастомных заголовков и тестирования API. Часто предустановлен вместе с curl на Linux.
Postman
GUI-приложениеПолноценный GUI для создания, сохранения и совместного использования запросов с коллекциями, окружениями и командной синхронизацией. Отлично подходит для исследования API; поддерживает импорт/экспорт curl. Громоздкее однострочной команды для быстрых проверок или CI.
Insomnia
GUI-приложениеБолее лёгкая open-source альтернатива Postman с чистым конструктором запросов и импортом/экспортом curl. Хорошо для организации API-запросов; как и Postman, избыточен для одного скриптового вызова.
fetch() / requests
HTTP-клиенты в кодеJavaScript fetch() и Python requests — это то, как вы делаете вызов из кода приложения. Сначала создайте и проверьте запрос как curl, затем переведите его — предстоящая вкладка Convert сгенерирует эквивалентный код на fetch, requests и других клиентах.
Примеры curl-команд
Простой GET-запрос
curl https://api.example.com/users
Без флага метода curl по умолчанию использует GET. Это простейший возможный запрос — получить ресурс и вывести тело ответа в терминал. Добавьте параметры запроса в конструкторе, и они автоматически кодируются и добавляются к URL (?page=2&limit=50).
GET с Bearer-токеном
curl https://api.example.com/me \ -H 'Authorization: Bearer YOUR_TOKEN'
Самый распространённый аутентифицированный вызов REST API. Пресет Bearer auth добавляет заголовок Authorization: Bearer … за вас. Чтобы проверить содержимое JWT перед отправкой, вставьте токен в наш декодер JWT.
POST с JSON-телом
curl -X POST https://api.example.com/users \
-H 'Content-Type: application/json' \
-d '{"name":"Ada","role":"admin"}' Классика curl POST-запроса: тип тела JSON устанавливает -X POST, добавляет заголовок Content-Type: application/json и передаёт данные через -d. Для форматирования ответов API используйте наш форматировщик JSON.
POST-форма (urlencoded)
curl -X POST https://api.example.com/login \ -H 'Content-Type: application/x-www-form-urlencoded' \ -d 'username=ada&password=s3cret'
Классическая HTML-форма. Каждая пара -d field=value объединяется через & и отправляется как application/x-www-form-urlencoded. curl кодирует спецсимволы; добавляйте поля в секции тела формы, и инструмент соберёт строку за вас.
Multipart-загрузка файла
curl -X POST https://api.example.com/upload \ -F 'file=@report.pdf' \ -F 'title=Q3 report'
Команда загрузки файла через curl использует -F для multipart/form-data. Добавьте @ перед именем, чтобы прикрепить файл с диска; поля файлов и текста можно свободно смешивать. curl автоматически задаёт boundary и Content-Type — никогда не устанавливайте их вручную.
Скачивание в файл
curl -L -o archive.zip \ https://example.com/files/archive.zip
Сохраните тело ответа в именованный файл с помощью -o, а -L следует редиректам к реальному URL загрузки (часто используется с CDN и ссылками на release-assets). Используйте -O вместо -o, чтобы сохранить файл с именем сервера.
Basic-аутентификация
curl -u ada:s3cret \ https://api.example.com/private
curl basic auth использует -u user:pass; curl Base64-кодирует учётные данные в заголовок Authorization: Basic …. Всегда используйте Basic auth через HTTPS — Base64 является кодированием, а не шифрованием, и легко обратим.
Отладка с verbose
curl -v -i https://api.example.com/health
Когда запрос ведёт себя неожиданно, -v выводит полную строку запроса, все отправленные и полученные заголовки, а также TLS-рукопожатие; -i включает заголовки ответа в вывод тела. Первое, к чему стоит обратиться, когда API возвращает неверный статус-код.
Как создать curl-команду
- 1
Выберите HTTP-метод
Выберите GET, POST, PUT, PATCH, DELETE, HEAD или OPTIONS. curl по умолчанию использует GET; выбор POST или другого глагола добавляет
-X METHODк сгенерированной команде. Или нажмите пресет, чтобы задать метод и подходящее тело одним кликом. - 2
Введите URL и параметры запроса
Введите URL запроса (например,
https://api.example.com/users). Добавляйте параметры запроса в виде пар ключ/значение, и инструмент автоматически кодирует их и добавляет?key=value&…к URL — ручное кодирование не нужно. - 3
Добавьте заголовки и аутентификацию
Добавляйте заголовки запроса в виде пар ключ/значение, затем выберите схему авторизации: None, Bearer-токен, Basic (логин/пароль) или кастомный заголовок API-ключа. Правильный заголовок
Authorizationили кастомный заголовок будет сгенерирован в точном формате, который ожидает сервер. - 4
Задайте тело запроса
Для POST/PUT/PATCH выберите тип тела: вставьте сырой JSON (заголовок
Content-Typeдобавляется за вас), создайте urlencoded-поля формы или соберите multipart-загрузку и переключите любое поле в файл с префиксом@. - 5
Включите нужные параметры
Активируйте нужные флаги — следовать редиректам (
-L), небезопасный TLS (-k), подробный вывод (-v), включить заголовки (-i), сжатие (--compressed), сохранение в файл (-o), таймаут соединения или прокси (-x). Каждое переключение обновляет команду в реальном времени. - 6
Скопируйте, экспортируйте или сбросьте
Скопируйте готовую команду, выполните Export .sh для скачивания в виде скрипта или Reset для сброса формы. Используйте переключатель Multi-line для выбора между однострочным и многострочным форматом перед копированием.
Частые ошибки curl
Отсутствие -X при методе с телом
Отправка тела с -d подразумевает POST, но если нужен PUT или PATCH, необходимо явно указать это с помощью -X. Без этого тело отправляется как POST, и сервер возвращает неверный статус или отклоняет запрос.
# Ожидался PATCH, но -d один подразумевает POST
curl -d '{"role":"admin"}' \
https://api.example.com/users/7 # Явно задайте глагол
curl -X PATCH -d '{"role":"admin"}' \
-H 'Content-Type: application/json' \
https://api.example.com/users/7 Отсутствие Content-Type при JSON POST
Отправка JSON с -d НЕ устанавливает заголовок Content-Type — curl по умолчанию использует application/x-www-form-urlencoded. Большинство API при этом не могут парсить тело и возвращают 400 или 415. Всегда добавляйте тип содержимого JSON (или используйте пресет JSON body, который добавляет его за вас).
# Сервер видит urlencoded, а не JSON — 400/415
curl -X POST https://api.example.com/users \
-d '{"name":"Ada"}' # Объявите тип содержимого JSON
curl -X POST https://api.example.com/users \
-H 'Content-Type: application/json' \
-d '{"name":"Ada"}' Одинарные и двойные кавычки: экранирование
Внутри двойных кавычек оболочка раскрывает $, обратные кавычки и !, искажая JSON или ломая payload с $variable. Одинарные кавычки передают тело буквально. Используйте одинарные кавычки для JSON-тел; переходите на двойные только в cmd.exe, который не поддерживает одинарные кавычки.
# $name раскрывается оболочкой в пустую строку
curl -d "{\"user\":\"$name\"}" \
https://api.example.com/users # Одинарные кавычки передают тело буквально
curl -d '{"user":"$name"}' \
https://api.example.com/users Использование -d в GET-запросе
Добавление -d к запросу молча превращает его в POST. Если нужен GET с параметрами запроса, укажите их в URL (или используйте -G, чтобы данные из -d перешли в строку запроса). -d в GET — одна из самых частых причин «мой GET не работает».
# -d делает это POST, а не GET curl -d 'page=2&limit=50' \ https://api.example.com/users
# Строка запроса в URL сохраняет метод GET curl 'https://api.example.com/users?page=2&limit=50'
Продолжение строки в Windows: ^ против \
Обратный слеш (\) продолжает команду на следующей строке в bash, Git Bash и WSL. В cmd.exe символ продолжения — каретка (^), а в PowerShell — обратная кавычка (`` ` ``). Вставка команды с обратными слешами в cmd сломает её — переключите инструмент в однострочный режим для Windows cmd.
:: cmd.exe — обратный слеш не является символом продолжения
curl -X POST https://api.example.com/users \
-d '{"name":"Ada"}' :: cmd.exe — одна строка или используйте ^ для продолжения
curl -X POST https://api.example.com/users -d "{\"name\":\"Ada\"}" Пробелы в URL не закодированы
Сырой пробел (или &, #, ?) в URL или значении параметра ломает команду — оболочка разбивает аргумент, и curl видит усечённый URL. Процентно закодируйте значение (пробел становится %20) или дайте curl закодировать его с помощью --data-urlencode. Поля параметров запроса в этом инструменте кодируются автоматически.
# Пробел разбивает аргумент — curl видит два аргумента curl https://api.example.com/search?q=hello world
# Закодируйте пробел (или возьмите весь URL в кавычки) curl 'https://api.example.com/search?q=hello%20world'
Типовые сценарии использования
- Тестирование REST API
- Создавайте и отправляйте запросы к REST-эндпоинту, не выходя из терминала: задайте метод, вставьте Bearer-токен, отправьте JSON-тело и прочитайте ответ. Самый быстрый способ убедиться в корректности API перед написанием клиентского кода.
- Воспроизведение запроса из документации
- Документация API показывает эндпоинты и параметры, но редко даёт полную готовую команду. Заполните метод, URL, заголовки и авторизацию здесь и получите curl-команду, которая работает «как есть» — без борьбы с кавычками или отсутствующими заголовками
Content-Type. - Smoke-тесты в CI/CD
- Сгенерируйте curl-команду для health check или post-deploy smoke-теста, затем выполните Export .sh для добавления в пайплайн. Добавьте
--connect-timeoutи--max-time, чтобы зависший эндпоинт не блокировал сборку, и проверяйте статус-коды с-w. - Загрузка и скачивание файлов
- Соберите
multipart/form-data-загрузку с-F field=@fileили создайте-L -o filename-скачивание с переходом по редиректам к CDN. Предварительно закодируйте сложные имена файлов или значения запроса с помощью нашего URL-энкодера. - Отладка вебхуков
- Воспроизведите webhook-payload, отправив тот же JSON, который отправляет провайдер, с правильными заголовками подписи и
Content-Type. Воспроизведите точный запрос локально, чтобы отладить, почему ваш обработчик его отклонил. - Воспроизводимые баг-репорты
- Вставьте одну самодостаточную curl-команду в баг-репорт или PR, чтобы любой мог воспроизвести точный запрос — метод, заголовки, плейсхолдер авторизации и тело. Намного понятнее, чем описывать запрос прозой.
- Изучение флагов curl
- Смотрите, как каждый выбор в форме соответствует реальному флагу — выберите Basic auth и наблюдайте появление
-u, добавьте JSON-тело и следите за прикреплением заголовкаContent-Type. Практический способ изучить синтаксис в паре с нашей шпаргалкой по curl. - Подготовка запроса для конвертации в код
- Создайте и проверьте запрос как curl, затем переведите его в HTTP-клиент вашего приложения. Предстоящая вкладка Convert преобразует вставленную curl-команду в fetch, requests, Go, PHP, Ruby и Node.js — начните с curl-команды, которая точно работает.
Флаги и синтаксис curl
- Экранирование в оболочке
- Инструмент оборачивает значения в одинарные кавычки — самый безопасный способ в POSIX-оболочках, поскольку внутри строки в одинарных кавычках ничего не раскрывается. Буквальная одинарная кавычка внутри значения выводится как последовательность
'\''(закрывающая кавычка, экранированная кавычка, открывающая кавычка). Вcmd.exeиспользуйте двойные кавычки; Git Bash и WSL выполняют сгенерированные команды с одинарными кавычками без изменений. - -d против --data-raw и --data-binary
-d/--dataудаляет из тела символы новой строки и возврата каретки — подходит для парkey=value, теряет данные при многострочном содержимом.--data-rawидентичен, но не воспринимает ведущий@как имя файла.--data-binaryотправляет байты точно так, как заданы (используйте@fileдля загрузки сырого содержимого файла). Все три подразумевают POST, если метод не переопределён.- Multipart (-F) против URL-encoded (-d)
-F field=valueсоздаётmultipart/form-dataс генерируемым boundary — обязательно для загрузки файлов (-F file=@path) и смешанных форм с файлами и текстом.-d field=valueсоздаётapplication/x-www-form-urlencoded— одну строку, объединённую через&. Никогда не задавайтеContent-Typeвручную для multipart; curl сам вычисляет boundary и устанавливает заголовок.- Кодирование заголовка авторизации
- Bearer auth отправляет
Authorization: Bearer <token>дословно (RFC 6750). Basic auth через-u user:passBase64-кодируется вAuthorization: Basic <base64>при передаче — это кодирование, а не шифрование, поэтому используйте HTTPS. API-ключ — это любой кастомный заголовок, который требует сервис, напримерX-API-Key: <value>. - Кодирование строки запроса
- Параметры запроса, добавленные в конструкторе, процентно кодируются и добавляются как
?key=value&key2=value2. Зарезервированные символы (пробелы,&,=,#) экранируются, чтобы URL был корректным. Для полей тела, которые нужно закодировать, встроенная функция curl--data-urlencodeвыполняет кодирование в момент запроса. - Поведение при редиректах (-L)
- Без
-Lcurl выводит ответ 301/302 и останавливается. С-Lон следует заголовкуLocationдо конечного URL. Обратите внимание, что curl удаляет заголовокAuthorizationпри редиректе на другой хост (защита по умолчанию); используйте--location-trustedтолько тогда, когда понимаете последствия. - Сжатые ответы
--compressedдобавляет заголовокAccept-Encoding, рекламирующий поддержку gzip/deflate/brotli, и прозрачно разжимает ответ, экономя трафик. Декодированное тело идентично ответу без сжатия — это чисто транспортная оптимизация, безопасная для большинства вызовов API.- Вывод: -o против -O
-o filenameзаписывает тело ответа в указанный вами файл;-Oсохраняет его под именем удалённого файла из пути URL. Оба подавляют стандартный вывод в stdout. Сочетайте с-L, чтобы редиректы разрешились до реального ресурса перед записью файла.
Лучшие практики curl-запросов
- Никогда не хардкодьте секреты в общих командах
- curl-команда, которую вы вставляете в PR, тикет или чат, будет прочитана другими и проиндексирована инструментами. Замените токены и пароли плейсхолдером (
YOUR_TOKEN) или ссылайтесь на переменную окружения (-H "Authorization: Bearer $API_TOKEN"). Для длинных учётных данных curl может читать заголовок из файла с помощью-H @headerfile, чтобы секрет никогда не появлялся в истории оболочки. - Предпочитайте --data-binary @file для бинарных payload
- Когда тело — это файл, байты которого важны (изображение, подписанный payload, JSON, где значимы пробелы), используйте
--data-binary @file, а не-d @file. Обычный-dудаляет символы новой строки и возврата каретки, молча повреждая бинарное и многострочное содержимое.--data-binaryотправляет файл точно так, как он есть на диске. - Заключайте значения заголовков в кавычки
- Всегда оборачивайте значения
-Hв кавычки:-H 'Content-Type: application/json'. Без кавычек пробел после двоеточия разбивает аргумент, и curl получает некорректный заголовок. Одинарные кавычки также предотвращают раскрытие оболочкой$,*и других спецсимволов внутри значения — именно это генерирует инструмент по умолчанию. - Используйте --compressed для экономии трафика
- Добавляйте
--compressedк вызовам API и загрузкам, чтобы запросить gzip/brotli-кодирование и дать curl прозрачно разжать ответ. Для API с большим объёмом JSON это может сократить объём передачи на 70–90% без изменения получаемого ответа — бесплатное улучшение в скриптах, которые регулярно опрашивают эндпоинты. - Фиксируйте таймауты в скриптах
- В любом автоматизированном контексте добавляйте
--connect-timeoutи--max-time, чтобы медленный или зависший эндпоинт не блокировал пайплайн бесконечно. Health check с--max-time 10быстро завершится с ошибкой и позволит CI продолжить работу. Сочетайте с--retry Nдля поглощения кратковременных сетевых сбоев без немедленного отказа. - Проверяйте с -v перед автоматизацией
- Прежде чем встраивать curl-команду в скрипт или cron-задание, запустите её один раз с
-v, чтобы увидеть точную строку запроса, заголовки и TLS-рукопожатие. Это самый быстрый способ обнаружить неверный метод, отсутствующийContent-Typeили незакреплённый заголовок авторизации — отлаживайте интерактивно, затем удалите-vдля production.
Часто задаваемые вопросы
Что делает этот инструмент?
.sh-скрипт или переключитесь между однострочным и многострочным форматом вывода. Это генератор curl-команд, созданный для повседневной работы с REST API, воспроизведения запросов из документации или добавления воспроизводимой команды в баг-репорт. Для подробного справочника по флагам смотрите нашу шпаргалку по curl. Мои данные (токены, URL) куда-то передаются?
Как отправить POST-запрос с JSON через curl?
curl -X POST <url> -H 'Content-Type: application/json' -d '{…}'. Важны две части: флаг -d (или --data) несёт тело, а заголовок Content-Type: application/json сообщает серверу, как его парсить — без заголовка многие фреймворки игнорируют или неверно читают payload. Современный curl (7.82+) также предлагает сокращение --json, которое задаёт заголовок и тело одновременно. После вызова вставьте ответ в наш форматировщик JSON для красивого вывода и валидации. Как добавить Bearer-токен к curl-запросу?
Authorization со значением Bearer YOUR_TOKEN или выберите пресет «GET with Bearer» и вставьте свой токен. Сгенерированная команда: curl <url> -H 'Authorization: Bearer YOUR_TOKEN'. Слово Bearer, один пробел, затем токен — именно этот формат требует спецификация OAuth 2.0 Bearer (RFC 6750). Чтобы проверить claims и срок действия токена перед отправкой, декодируйте его с помощью нашего декодера JWT. Как загрузить файл с помощью curl?
curl -X POST <url> -F 'file=@/path/to/file'. Префикс @ указывает curl читать файл с диска и отправлять его как multipart/form-data; в одном запросе можно добавить несколько -F-полей с файлами и текстом. Не устанавливайте заголовок Content-Type вручную для multipart — curl автоматически генерирует boundary и задаёт заголовок, а его переопределение сломает загрузку. Для загрузки одного файла через PUT используйте -T file <url>. Можно ли импортировать команду из браузерных DevTools («Copy as cURL»)?
-H в секцию заголовков, а URL в поле URL. Чем curl на Windows отличается?
cmd.exe используются двойные кавычки (") вокруг значений и каретка (^) для продолжения строки, одинарные кавычки не имеют особого смысла. В PowerShell curl является псевдонимом для Invoke-WebRequest, если явно не вызвать curl.exe, и правила кавычек снова отличаются. Самый удобный вариант — Git Bash или WSL, где однострочные команды, генерируемые этим инструментом, выполняются без изменений. Если нужен cmd, переключите команду в однострочный формат и замените кавычки '…' на "…". В чём разница между -d, --data-raw и --data-binary?
-d (псевдоним --data) отправляет тело и удаляет из данных символы новой строки и возврата каретки — подходит для пар key=value, но опасно для многострочного JSON. --data-raw идентичен, но не воспринимает ведущий @ как имя файла — безопасный выбор, когда данные буквально начинаются с @. --data-binary отправляет байты точно так, как они заданы, без удаления переносов строк — правильный флаг для загрузки сырого содержимого файла (--data-binary @file.json) или любого payload, где пробельные символы значимы. Все три подразумевают POST, если метод не переопределён. Как отправить куки с curl?
-b для отправки куков и -c для их сохранения. -b 'name=value' отправляет буквальную строку cookie, а -b cookies.txt читает куки из файла в формате Netscape. Чтобы захватить куки, установленные сервером (например, после логина), добавьте -c cookies.txt для записи в jar, затем используйте этот jar с -b cookies.txt в следующем запросе. Конструктор сфокусирован на заголовках, авторизации и теле; для заголовка cookie можно также просто добавить Cookie: name=value в секцию заголовков. Как следовать редиректам?
-L вручную. По умолчанию curl выводит ответ 301/302 и останавливается; -L указывает ему следовать заголовку Location до конечного адреса. Это необходимо для ссылок на загрузку за CDN, сокращённых URL и API, которые перенаправляют HTTP на HTTPS. Сочетайте с -o filename для сохранения скачанного файла после разрешения редиректа. Как задать таймаут запроса?
--connect-timeout <секунды> — это ограничивает время ожидания установления соединения. Для ограничения всей передачи — соединение плюс загрузка — добавьте --max-time <секунды> к сгенерированной команде вручную. Фиксированные таймауты — лучшая практика в любом скрипте или CI smoke-тесте: без них зависший эндпоинт может заблокировать вашу сборку на неопределённое время. Сочетайте с --retry N для автоматического повтора при временных сбоях. Похожие инструменты
Все инструменты →htpasswd Генератор — bcrypt, Apache MD5 (apr1) и Basic Auth
Веб и API
Генерируйте записи htpasswd с bcrypt, Apache MD5 (apr1), SHA-1 и другими алгоритмами. Получайте готовые конфиги для Apache, nginx и Docker. 100% в браузере — без загрузки данных.
Генератор Open Graph и мета-тегов
Веб и API
Создавайте мета-теги Open Graph, Twitter Card и SEO с живым предпросмотром в Google, Facebook и X. 100% бесплатно, в браузере, без регистрации — просто скопируйте код.
Тестер nginx location — почему побеждает этот блок
Веб и API
Смотрите, какой блок location в nginx победит — и почему проиграли все остальные. Бесплатный тестер совпадений для =, ^~, ~ и ~*, целиком в вашем браузере.
Калькулятор подсетей IPv4
Веб и API
Рассчитайте адрес сети, широковещательный адрес, диапазон узлов, маску подсети и обратную маску для любого блока IPv4 CIDR. Учитывает /31 по RFC 3021, делит блок на подсети, работает в браузере.
Декодер traceparent — W3C Trace Context
Веб и API
Хватит считать hex-цифры. Бесплатный онлайн-декодер traceparent — работает в браузере, ничего не уходит. Trace ID, span ID, 8 бит trace-flags, tracestate, Datadog/X-Ray/B3.
Инструмент расшифровки AES — совместим с OpenSSL и CryptoJS
Безопасность
Расшифровывайте AES онлайн — GCM/CBC/CTR, парольная фраза или необработанный ключ, автоматическое определение формата OpenSSL и CryptoJS «U2FsdGVkX1». Работает на 100% в браузере, ключи никогда не покидают страницу.