2014-05-20 32 views
0

這是我在開發RESTful API時遇到的奇怪場景。每當我發送一個HTTP Status Code 204以及一個JSON編碼的array來顯示消息,我的REST client在這一刻,它是谷歌瀏覽器擴展程序),顯示錯誤'Malformed JSON'。如果我將狀態碼更改爲別的,客戶端顯示JSON就好了。 我是新手,對REST API,但這對我來說仍然是一個奇怪的事情。HTTP狀態代碼JSON解析錯誤204

+3

嗯......狀態碼204表示「無內容」。我懷疑你的客戶甚至試圖閱讀郵件的正文,並且認爲它是空的。 – Cully

+1

爲什麼你認爲對於期望內容的東西來說很奇怪,但是得到一個「No Content」狀態代碼,然後發出一個關於沒有達到預期的錯誤? – Cully

+0

所以你說的是,在客戶端收到這個錯誤是完全正確的? 此外,我是否需要在實際客戶端(我的移動應用程序)上顯式檢查204狀態碼,以瞭解每個預計將返回的請求? –

回答

1

204狀態碼解釋

的204狀態碼錶示請求被接受和理解的,但沒有必要對任何數據發送回。

它爲什麼發生

服務器已經履行了請求,但不需要返回一個實體主體,並且可能要返回更新的元信息。響應可以包含新的或更新的以entity-headers形式的元信息,如果存在的話,應該與請求的變體相關聯。204響應絕不能包含消息體,因此總是在第一個空行終止之後標題字段。

意味着什麼

如果客戶是用戶代理,它不應該改變從引起要被髮送的請求它的文檔視圖。儘管任何新的或更新的元信息都應該應用於當前用戶代理活動視圖中的文檔,但該響應主要是爲了允許在不改變用戶代理的活動文檔視圖的情況下進行操作輸入。

+0

感謝您的詳細回覆。它清除了很多東西。我不認爲我需要在標題中發送額外的元信息。我明確地檢查了我的客戶端上的204狀態碼,並形成要顯示給用戶的消息。 –