我在寫一個僅接受json的web服務,而且只輸出json。HTTP 406和415錯誤代碼
所以我需要返回適當的狀態碼,如果任何其他格式的要求。
看來,我有兩個選擇:
- 406 - 不接受
- 415 - 不支持的媒體類型
這將是巨大的,如果有人能賜教,以語義這兩個代碼。
我在寫一個僅接受json的web服務,而且只輸出json。HTTP 406和415錯誤代碼
所以我需要返回適當的狀態碼,如果任何其他格式的要求。
看來,我有兩個選擇:
這將是巨大的,如果有人能賜教,以語義這兩個代碼。
服務器根據接受請求頭(即它們有一個Accept頭,它聲明它們只有只有需要XML)而無法響應時返回406。
當請求(POST或PUT中的內容)中發送的實體具有不受支持的媒體類型(即它們發送XML)時,服務器返回415。
so .. 406當你不能發送他們想要的,415當他們發送你不想要的東西時。
希望有幫助!
引述RFC2616:
406不可接受
由請求 所標識的資源只能生成響應 實體其中內容 特徵不可接受 根據接受頭文件sen t請求中的 。
當客戶端查詢您的服務時,請檢查它發送的標頭是什麼Accept*
;如果它不符合application/json
(或通配符,例如*/*
),請返回此項。迴應應該表明「我們只在這裏提供JSON」。
415不支持的媒體類型
服務器拒絕,因爲 請求的實體是不爲 請求方式的請求源支持 的格式以服務 請求。
只是返回415 Unsupported Media Type
應該是「客戶端發送的內容不是JSON,不能使用」的最小響應。不知道是否有標題表明「您需要發送JSON」
RFC2616可以幫助您!
http://www.rfc2616.com/#10.4.7
http://www.rfc2616.com/#10.4.16
我會選擇415,它適合你的描述相當不錯。
編輯:哦。我知道了。 「請求的實體採用請求資源不支持的格式」。因此,如果您有內容請求並且內容類型錯誤,則應該發出415迴應。
Accept
標頭,則無法填滿。Content-Type
,則不能使用。
他需要兩種不同的場景 – nathan 2010-07-20 21:37:20
我討厭你可以直接回答的問題。他們在得分方面很出色,但需要快速和正確的迴應。 :/ – Cheery 2010-07-20 21:48:15