cURL: примеры GET и POST запросов с JSON для Linux, Windows и PowerShell
Большинство ошибок с curl связаны с кавычками и забытым заголовком Content-Type. Ниже команды, которые можно скопировать и поменять в них адрес.
GET-запрос и код ответа
Ключ -i показывает код ответа и заголовки, а -s убирает индикатор загрузки. Чтобы получить только код ответа, используйте -o и -w.
curl -i https://api.example.com/orders/42
curl -s -o /dev/null -w "%{http_code}\n" https://api.example.com/orders/42POST с JSON в Linux и macOS
Тело передаётся ключом -d, а заголовок Content-Type: application/json обязателен: без него многие серверы не поймут формат. В bash JSON удобно брать в одинарные кавычки.
curl -X POST https://api.example.com/orders \
-H "Content-Type: application/json" \
-d '{"sku":"A-1","qty":2}'Ключ --json
Начиная с curl 7.82 есть ключ --json: он сам ставит заголовки Content-Type и Accept для JSON и отправляет запрос методом POST.
curl --json '{"sku":"A-1","qty":2}' https://api.example.com/ordersPOST в Windows: cmd и PowerShell
В cmd одинарные кавычки не работают: JSON берут в двойные, а кавычки внутри экранируют обратной косой чертой. В Windows PowerShell 5.1 слово curl является псевдонимом Invoke-WebRequest, поэтому вызывайте curl.exe. Самый надёжный способ на любой системе: положить JSON в файл и передать его через @.
REM cmd
curl -X POST https://api.example.com/orders -H "Content-Type: application/json" -d "{\"sku\":\"A-1\",\"qty\":2}"
# PowerShell и любая система: JSON из файла body.json
curl.exe -X POST https://api.example.com/orders -H "Content-Type: application/json" -d "@body.json"Токен и другие заголовки
Каждый заголовок добавляется своим ключом -H. Токен лучше хранить в переменной окружения, а не вписывать в команду: команды остаются в истории терминала.
curl https://api.example.com/orders/42 \
-H "Authorization: Bearer $TOKEN" \
-H "Accept: application/json"Как проверить ответ, а не только отправить
curl показывает ответ, но не говорит, верен ли он. Скопированную команду cURL можно импортировать в Checkcraft: запрос сохранится, а к ответу добавятся правила на статус, поля, типы и суммы. Как импортировать, описано в руководстве про cURL и OpenAPI.
Повторите это на своём API
Checkcraft — настольная программа: сохраняет проверки ответа API без кода и показывает, что не совпало. Начните с учебного примера, затем подставьте свои обезличенные данные. Free работает на Windows и Linux без ограничения срока.
Скачать FreeКак получить и запустить приложениеСкачивание без регистрации и почты, архив готов за пару минут. Состав бесплатной версии опубликован на странице тарифов.
Документация
Начните с примера по ссылкам и сопоставьте результат с требованием своей проверки.