415 Unsupported Media Type

El formato del cuerpo no es compatible.

Cuándo usarlo

Al enviar datos de formulario a un endpoint JSON, o con un Content-Type incorrecto.

Causas habituales y soluciones

El servidor no puede analizar el formato del cuerpo, normalmente porque falta Content-Type o es incorrecto: JSON enviado sin Content-Type: application/json (curl -d usa application/x-www-form-urlencoded por defecto), datos de formulario multipart enviados a un endpoint que solo acepta JSON, o un charset o tipo de proveedor que el servidor rechaza. Spring y ASP.NET devuelven 415 cuando ningún manejador acepta el tipo declarado.

Content-Encoding también importa: un cuerpo comprimido con gzip enviado a un servidor que no descomprime las solicitudes recibe un 415. En los navegadores, fetch con un cuerpo de tipo string envía text/plain;charset=UTF-8 a menos que definas la cabecera. Ten en cuenta que application/json provoca un preflight CORS y text/plain no. curl --json, disponible desde la 7.82, define por ti tanto Content-Type como Accept.

Error del cliente (4xx)

Los códigos 4xx son errores del cliente: la solicitud en sí es incorrecta, no está autorizada o apunta a algo que no existe. Repetir la misma solicitud no servirá de nada.

Cómo se ve

HTTP/1.1 415 Unsupported Media Type

Cómo enviarlo

Node.js / Expressres.status(415).end()
Python / Flaskreturn '', 415
nginxreturn 415;

Cómo comprobarlo

curl -s -o /dev/null -w "%{http_code}\n" https://example.com/

Abrir Códigos de estado HTTP