Ответ
Ошибка 415 Unsupported Media Type указывает, что сервер отказывается обработать запрос, потому что формат полезной нагрузки (тела запроса) не поддерживается. Вот пошаговый чек-лист, который я использую для диагностики:
1. Проверьте заголовок Content-Type:
Это самая частая причина. Заголовок должен точно соответствовать фактическому формату тела.
- Для JSON:
Content-Type: application/json - Для XML:
Content-Type: application/xmlилиtext/xml - Для форм:
Content-Type: application/x-www-form-urlencodedилиmultipart/form-data
2. Проверьте валидность тела запроса: Убедитесь, что тело синтаксически корректно.
- JSON: Проверьте на отсутствие лишних/недостающих запятых, кавычек.
- Используйте валидаторы (например,
json.loads()в Python).
3. Проверьте заголовок Accept (опционально, но важно):
Хотя Accept указывает, какой формат ответа ожидает клиент, некоторые серверы могут проверять и его. Убедитесь, что сервер может ответить в запрашиваемом формате.
Пример исправления запроса:
Неправильно: Сервер ожидает JSON, но заголовок не установлен или тело невалидно.
POST /api/users HTTP/1.1
Host: example.com
{ "name": "Alice", age: 30 } # Ошибка: нет кавычек у `age`
Правильно:
POST /api/users HTTP/1.1
Host: example.com
Content-Type: application/json
Accept: application/json
{
"name": "Alice",
"age": 30
}
В инструментах тестирования (например, Postman): Убедитесь, что вкладка "Body" имеет правильный формат (raw/JSON), а заголовок Content-Type проставляется автоматически или вручную.