Format treści nie jest obsługiwany.
Kiedy go używać
Wysyłanie danych formularza do endpointu JSON albo nieprawidłowy Content-Type.
Typowe przyczyny i rozwiązania
Serwer nie potrafi sparsować formatu treści, zwykle dlatego, że brakuje Content-Type albo jest on błędny: JSON wysłany bez Content-Type: application/json (curl -d domyślnie używa application/x-www-form-urlencoded), dane formularza multipart wysłane do endpointu przyjmującego tylko JSON albo charset lub typ vendor, który serwer odrzuca. Spring i ASP.NET zwracają 415, gdy żaden handler nie akceptuje zadeklarowanego typu.
Liczy się też Content-Encoding: treść skompresowana gzipem, wysłana do serwera, który nie dekompresuje żądań, dostaje 415. W przeglądarkach fetch z treścią w postaci napisu wysyła text/plain;charset=UTF-8, chyba że ustawisz nagłówek. Pamiętaj, że application/json wywołuje preflight CORS, a text/plain nie. curl --json, dostępne od wersji 7.82, ustawia za Ciebie zarówno Content-Type, jak i Accept.
Błąd klienta (4xx)
Kody 4xx to błędy klienta: samo żądanie jest błędne, nieautoryzowane albo wskazuje na coś, czego nie ma. Ponowienie tego samego żądania nic nie da.
Jak to wygląda
HTTP/1.1 415 Unsupported Media TypeJak go wysłać
| Node.js / Express | res.status(415).end() |
|---|---|
| Python / Flask | return '', 415 |
| nginx | return 415; |
Jak go sprawdzić
curl -s -o /dev/null -w "%{http_code}\n" https://example.com/