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 TypeSo sendest du ihn
| Node.js / Express | res.status(415).end() |
|---|---|
| Python / Flask | return '', 415 |
| nginx | return 415; |
So prüfst du ihn
curl -s -o /dev/null -w "%{http_code}\n" https://example.com/