curl

curl

Что такое curl

curl — это консольная утилита для отправки HTTP-запросов. Работает из командной строки: Terminal на macOS/Linux, а на Windows доступна из PowerShell или через Git Bash.

Почему это важно для тестировщика:

  • Быстрая проверка API без открытия Postman
  • Можно встроить в скрипты автоматизации
  • Работает там, где нет GUI — на удалённых серверах
  • Точное воспроизведение запроса одной командой, которую легко вставить в баг-репорт

Базовый синтаксис

curl [флаги] URL

Основные примеры

GET-запрос (простейший)

curl https://api.example.com/users

GET с заголовком авторизации

curl -H "Authorization: Bearer eyJhbGciOiJIUzI1NiJ9..." \
     https://api.example.com/me

POST с JSON-телом

curl -X POST https://api.example.com/users \
     -H "Content-Type: application/json" \
     -d '{"name": "Иван", "email": "ivan@example.com", "password": "Secret123!"}'

PUT (обновление ресурса)

curl -X PUT https://api.example.com/users/42 \
     -H "Authorization: Bearer TOKEN" \
     -H "Content-Type: application/json" \
     -d '{"name": "Иван Петров"}'

DELETE

curl -X DELETE https://api.example.com/users/42 \
     -H "Authorization: Bearer TOKEN"

Полезные флаги

ФлагЧто делаетПример
-XМетод запроса-X POST
-HДобавить заголовок-H "Content-Type: application/json"
-dТело запроса-d '{"key": "value"}'
-vПодробный вывод (verbose) — видны заголовки и статус-v
-oСохранить ответ в файл-o response.json
-sТихий режим — убрать прогресс-бар-s
-iПоказать заголовки ответа в выводе-i
--data-rawТело как есть, без обработки спецсимволов--data-raw '{"q":"test"}'

Разбор вывода с флагом -v

> POST /api/users HTTP/1.1          ← что ты отправляешь
> Host: api.example.com
> Content-Type: application/json
>
< HTTP/1.1 201 Created              ← что сервер вернул
< Content-Type: application/json
< X-Request-Id: req-abc123
<
{"id": 5, "email": "ivan@example.com"}   ← тело ответа

Строки с > — запрос. Строки с < — ответ.


Сохранение ответа в файл

curl -s https://api.example.com/users -o users.json

После этого открываешь users.json и изучаешь структуру ответа.


Когда curl особенно полезен

  • Воспроизведение бага: один раз написал команду — вставил в баг-репорт, разработчик точно воспроизведёт
  • Скрипт подготовки данных: создать 10 тестовых пользователей одним bash-скриптом
  • Проверка на сервере: когда доступ только через SSH, и Postman недоступен
  • Быстрая проверка: надо срочно проверить один эндпоинт — curl быстрее Postman

Пример баг-репорта с curl

Шаги воспроизведения:
1. Выполнить запрос:
   curl -X POST https://api.example.com/users \
        -H "Content-Type: application/json" \
        -d '{"email": "not-an-email"}'

2. Ожидаемый результат: 400 Bad Request с описанием ошибки
3. Фактический результат: 500 Internal Server Error, тело пустое

Что мы запомним

  • curl — консольный инструмент для HTTP-запросов, доступен на Linux/macOS, устанавливается на Windows
  • Основные флаги: -X (метод), -H (заголовок), -d (тело), -v (подробный вывод)
  • Флаг -v показывает и запрос, и ответ с заголовками
  • Команда curl — это точная воспроизводимая инструкция, отличный элемент баг-репорта
  • Особенно ценен для проверок на удалённых серверах и автоматизации через скрипты

Попробуйте интерактивную версию

Практические задачи, квизы и AI-наставник — бесплатный старт без карты

Перейти к практике