415 Unsupported Media Type

Le format du corps n’est pas pris en charge.

Quand l’utiliser

Envoi de données de formulaire à un point de terminaison JSON, ou Content-Type erroné.

Causes courantes et solutions

Le serveur ne sait pas analyser le format du corps, généralement parce que Content-Type est absent ou incorrect : du JSON envoyé sans Content-Type: application/json (curl -d utilise par défaut application/x-www-form-urlencoded), des données de formulaire multipart envoyées à un point de terminaison qui n’accepte que du JSON, ou un charset ou un type vendeur que le serveur rejette. Spring et ASP.NET renvoient 415 quand aucun gestionnaire n’accepte le type déclaré.

Content-Encoding compte aussi : un corps compressé en gzip envoyé à un serveur qui ne décompresse pas les requêtes reçoit un 415. Dans les navigateurs, fetch avec un corps de type chaîne envoie text/plain;charset=UTF-8, sauf si vous définissez l’en-tête. Notez que application/json déclenche une requête preflight CORS, contrairement à text/plain. curl --json, disponible depuis la version 7.82, définit à la fois Content-Type et Accept pour vous.

Erreur client (4xx)

Les codes 4xx sont des erreurs client : la requête elle-même est incorrecte, non autorisée ou vise quelque chose qui n’existe pas. Renvoyer la même requête ne servira à rien.

À quoi ça ressemble

HTTP/1.1 415 Unsupported Media Type

Comment l’envoyer

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

Comment le vérifier

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

Ouvrir l’outil Codes de statut HTTP