2012-08-15 346 views
29

對於某些資源,我的REST風格的服務器只接受PUTPOST請求使用JSON對象作爲內容主體,因此要求application/json,而不是application/x-www-form-urlencodedmultipart/form-data或任何其他的Content-TypeHTTP狀態代碼

格式錯誤的JSON(或缺少)會返回400,錯誤消息直接來自JSON解析器引發的異常,用於調試目的。

哪個HTTP錯誤代碼意味着客戶端發送了一個不可接受的請求Content-Type,即使服務器在技術上可以解析請求內容?

+1

在這裏看到一個明確的答案: http://stackoverflow.com/questions/19417553/what-if-any-http-status-code-is-returned-when-a-mime-type-是否丟失 – 2013-10-23 03:33:33

回答

42

根據此列表可能是415 Unsupported Media Typehttp://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.16

+0

我仍然想知道「未經接受的內容類型」和「不支持的媒體類型」之間是否存在差異 - 實際內容(可能與聲明內容不同)與預期內容不匹配。 – blackstrype 2014-11-17 17:55:56

+0

415是正確的,但你不應該使用RFC 2616;它已被RFC 7231廢棄。 – 2015-05-06 16:25:16

+11

'415不支持的媒體類型'意味着客戶端以*服務器不支持的格式*提供*數據(如請求的'Content-Type'標頭所示)。例如,嘗試使用'application/xml'格式的資源來創建'POST'請求來創建'User'類型的記錄,但服務器無法處理該資源類型的XML請求。 「406不可接受」表示傳入的請求需要服務器無法提供的特定格式的響應數據(如「Accept」標頭所示)(例如,當服務器只提供JSON時需要記錄爲XML )。 – Anthony 2016-04-24 23:03:13