Ответ
При тестировании API тело запроса (payload) может быть представлено в различных форматах. Ключевой заголовок Content-Type указывает серверу, как интерпретировать данные.
Основные форматы тела запроса:
Формат (Content-Type) |
Описание | Пример тела |
|---|---|---|
application/json |
Наиболее популярен для REST API. Структурированный, удобочитаемый. | {"user": "alice", "active": true} |
application/x-www-form-urlencoded |
Пары "ключ=значение", разделенные &. Кодирует пробелы как + или %20. |
name=John+Doe&city=New+York |
multipart/form-data |
Для отправки файлов и смешанных данных. Каждая часть имеет свои заголовки. | (см. пример в ответе на вопрос 691) |
application/xml / text/xml |
Структурированные данные в формате XML. | <request><user>alice</user></request> |
text/plain |
Простой неформатированный текст. | This is a plain text payload. |
Бинарные данные (например, image/png) |
Непосредственная передача файла (изображения, PDF и т.д.). | [байты файла] |
Почему это важно для тестировщика:
- Валидация: Сервер может отвергать запросы с неправильным
Content-Type. - Обработка ошибок: Нужно проверять, как API реагирует на неожиданные форматы (например, отправить XML в endpoint, ожидающий JSON).
- Инструменты: В Postman, Insomnia или скриптах (
requests,curl) необходимо корректно задавать и заголовок, и тело.
Пример curl для отправки JSON:
curl -X POST https://api.example.com/items
-H "Content-Type: application/json"
-d '{"title": "Test Item"}'