415 Unsupported Media Type

Das Format des Bodys wird nicht unterstützt.

Wann du ihn verwendest

Formulardaten an einen JSON-Endpunkt gesendet oder ein falscher Content-Type.

Häufige Ursachen und Lösungen

Der Server kann das Body-Format nicht parsen, meist weil Content-Type fehlt oder falsch ist: JSON ohne Content-Type: application/json gesendet (curl -d nimmt standardmäßig application/x-www-form-urlencoded), Multipart-Formulardaten an einen reinen JSON-Endpunkt oder ein Charset oder Vendor-Typ, den der Server ablehnt. Spring und ASP.NET geben 415 zurück, wenn kein Handler den angegebenen Typ akzeptiert.

Auch Content-Encoding spielt eine Rolle: Ein gzip-komprimierter Body an einen Server, der Anfragen nicht dekomprimiert, bekommt 415. Im Browser sendet fetch mit einem String-Body text/plain;charset=UTF-8, sofern du den Header nicht setzt. Beachte, dass application/json einen CORS-Preflight auslöst, text/plain dagegen nicht. curl --json, verfügbar seit 7.82, setzt Content-Type und Accept gleich mit.

Client-Fehler (4xx)

4xx-Codes sind Client-Fehler: Die Anfrage selbst ist fehlerhaft, nicht autorisiert oder verweist auf etwas, das es nicht gibt. Dieselbe Anfrage erneut zu senden hilft nicht.

So sieht es aus

HTTP/1.1 415 Unsupported Media Type

So sendest du ihn

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

So prüfst du ihn

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

HTTP-Statuscodes öffnen