2012-08-15 12 views
29

Für bestimmte Ressourcen, mein RESTful-Server akzeptiert nur PUT und POST Anfragen mit JSON-Objekten als Inhalt Körper, wodurch ein Content-Type von application/json statt application/x-www-form-urlencoded oder multipart/form-data oder irgendetwas anderes zu erfordern.HTTP-Statuscode für nicht akzeptierten Content-Type in Anfrage

Fehlerhafter JSON (oder dessen Fehlen) gibt eine 400 mit der Fehlermeldung zurück, die direkt von der Ausnahme genommen wurde, die vom JSON-Parser zu Debugging-Zwecken ausgelöst wurde.

Welcher HTTP-Fehlercode bedeutet, dass der Client eine Anfrage mit einem inakzeptablen Content-Type gesendet hat, selbst wenn der Server den Inhalt der Anfrage technisch analysieren könnte?

+1

Sehen Sie hier für eine endgültige Antwort: http://stackoverflow.com/questions/19417553/what-if-any-http-status-code-is-returned-when-a-mime-type- is-missing –

Antwort

42

Es könnte 415 Unsupported Media Type gemäß dieser Liste sein: http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.16.

+0

Ich frage mich immer noch, ob es einen Unterschied zwischen "nicht akzeptierter Inhaltstyp" und "nicht unterstützter Medientyp" gibt - wo der tatsächliche Inhalt (der möglicherweise vom angegebenen Inhalt abweicht) nicht mit dem übereinstimmt, was beabsichtigt ist. – blackstrype

+0

415 ist korrekt, aber Sie sollten RFC 2616 nicht verwenden; Es wurde durch RFC 7231 veraltet. –

+11

'415 Nicht unterstützter Medientyp' bedeutet, dass der Client * Daten * in einem Format zur Verfügung gestellt hat, das der Server nicht unterstützt (wie durch den Header 'Content-Type' der Anfrage angegeben). Beispiel: Sie versuchen, eine POST-Anforderung zum Erstellen des Datensatzes vom Typ "User" mit der Ressource im Format "application/xml" auszuführen, aber der Server kann keine XML-Anforderungen für diesen Ressourcentyp verarbeiten. "406 nicht akzeptabel" bedeutet, dass die eingehende Anforderung die Antwortdaten in einem bestimmten Format (wie durch den Header "Accept" angegeben) wünscht, die der Server nicht bereitstellen kann (z. B. einen Datensatz als XML wünschen, wenn der Server nur JSON bereitstellt)). – Anthony