@RequestMapping(value = "/test", method = RequestMethod.GET, produces = { "text/plain", "application/json" })
如果我發送一個請求:春RestController只考慮第一介質類型和忽略其餘部分
curl --header "Accept: text/plain, application/json" "http://localhost:8229/test/test"
它發回的HTML響應正文406不可接受的響應。預期響應是一個200 OK的JSON對象。
但是,如果我反向MIME類型的順序:
curl --header "Accept: application/json, text/plain" "http://localhost:8229/test/test"
然後,它發送預期的響應(在JSON)。
這是預期的行爲?爲什麼它忽略了第二種媒體類型?
PS:我使用Spring 1.3.5啓動釋放
編輯:我得到同樣的錯誤,如果我送"Accept: */*"
。該API可以根據內部條件返回JSON或text/plain。
因爲這是談判的內容是如何工作的。它從最需要的到較不理想的一個。在你的第一個請求中,你顯然比JSON更喜歡文本。但我懷疑你沒有在服務器端配置任何東西來返回純文本。 –
我是否需要特別配置某些東西?我以爲春天會檢查是否在返回最需要的MIME類型,所需較少會被選中(如果是這樣的一個返回),然後返回。 我還曾試圖「接受:*/*」,我這得到了同樣的錯誤。 – Rushil
我已經編輯了問題 – Rushil