415 Unsupported Media Type

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 Type

Jak go wysłać

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

Jak go sprawdzić

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

Otwórz narzędzie Kody statusu HTTP