К содержанию
CheckcraftСкачать
Практический сценарий

Ошибка 400 Bad Request в API: что не так с запросом

Код 400 означает, что сервер отказался обрабатывать запрос, потому что считает его неверным. Причина почти всегда в самом запросе, и её можно найти без доступа к серверу.

Checkcraft ·

Поможем с первой проверкой →

Что означает 400

Сервер получил запрос, но не может или не будет его обрабатывать: сломан синтаксис, не хватает обязательных полей, у значения не тот тип или формат. Часть API для ошибок в значениях использует код 422 Unprocessable Content, а 400 оставляет для нечитаемого запроса, но многие отвечают 400 в обоих случаях. Повторять тот же запрос без изменений бесполезно.

Как найти причину

Сначала прочитайте тело ответа: хороший API называет поле и правило, например amount must be positive. Затем проверьте JSON валидатором: лишняя запятая или одинарные кавычки дают 400 ещё до проверки полей. Убедитесь, что отправлен заголовок Content-Type: application/json, иначе сервер не поймёт тело. Сверьте поля с документацией: строка вместо числа, дата не в том формате, пропущенное обязательное поле. В адресе пробелы и кириллица должны быть закодированы.

curl -i -X POST https://api.example.com/orders \
  -H "Content-Type: application/json" \
  --data-binary "@order.json"

400 от nginx и в браузере

Сообщение 400 Bad Request: Request Header Or Cookie Too Large значит, что заголовки или cookie превысили лимит сервера; помогает очистка cookie этого сайта. The plain HTTP request was sent to HTTPS port означает, что обычный HTTP-запрос ушёл на порт, где ждут HTTPS: в адресе нужен https://. В обоих случаях запрос не доходит до приложения, и в его логах ничего не будет.

400 как ожидаемый результат теста

Для неверных данных 400 — правильный ответ, и его стоит проверять отдельно: код, текст ошибки с именем поля и то, что сервер ничего не создал. Если на неверные данные приходит 200 или 500, это ошибка сервиса. В Checkcraft такие негативные сценарии задаются правилами на код ответа и поля ошибки, без кода.

Следующий шаг

Повторите это на своём API

Checkcraft — настольная программа: сохраняет проверки ответа API без кода и показывает, что не совпало. Начните с учебного примера, затем подставьте свои обезличенные данные. Free работает на Windows и Linux без ограничения срока.

Скачать FreeКак получить и запустить приложение

Скачивание без регистрации и почты, архив готов за пару минут. Состав бесплатной версии опубликован на странице тарифов.

Документация

MDN: 400 Bad Request · RFC 9110: коды 4xx

Начните с примера по ссылкам и сопоставьте результат с требованием своей проверки.

Можно спросить человека

Поможем с первой проверкой

Расскажите, что хотите проверить или на каком шаге остановились. Поможем запустить Checkcraft, подобрать пример и разобраться с первым прогоном. Можно написать до скачивания.

Telegram-группа открытая: не публикуйте пароли, токены и конфиденциальные рабочие данные. Для первого вопроса достаточно описания задачи.

Можно написать напрямую support@checkcraft.ru

Без регистрации. Ответим по email. Это обращение в поддержку, а не подписка на рассылку.