我使用REST API開發Spring MVC應用程序。Spring MVC - 具有特定url參數的錯誤代碼406
我有一個控制器,這個方法:
@RequestMapping(value="/roomId/{roomId}",produces = "application/json")
public List<DayStatisticDto> findBySiteAndRoom(@PathVariable("roomId") String roomId, @RequestParam("timestamp") String timestamp, @RequestParam("pageSize") Integer pageSize) throws ParseException {
List<DayStatisticDto> dayStatisticDtos = dayStatisticService.latestDailyStatisticsForRoom(getCurrentUserSiteCode(), roomId, pageSize, timestamp, false);
return dayStatisticDtos;
}
當我做這個get請求:
有了這個請求參數:
- 接受:應用程序/ json
- 接受編碼:gzip,放氣,SDCH,BR
- 接受語言:FR-FR,FR; Q = 0.8,的en-US; Q = 0.6,連接; Q = 0.4
- 緩存控制:無緩存
- 曲奇:_ga = GA1.1.486025197.1475764350; JSESSIONID = 6716A5824088BC0F46A6B74D5FB25A3E
- 主機:本地主機:8080
- 的User-Agent:Mozilla的/ 5.0(Macintosh上;英特爾Mac OS X 10_11_6)AppleWebKit/537.36(KHTML,如Gecko)Chrome/54.0.2840.71 Safari/537.36
我得到一個正確的JSON對象作爲響應。
但是,當我改變參數 「roomId」 從I1.A.122到I1.A.123:
有了這個請求參數:
- 接受: application/json
- Accept-Encoding:gzip,deflate,sdch,br
- Accept-Language:fr-FR,fr ; q = 0.8,en-US; q = 0.6,en; q = 0.4
- Cache-Control:no-cache
- Cookie:_ga = GA1.1.486025197.1475764350; JSESSIONID = 6716A5824088BC0F46A6B74D5FB25A3E
- 主機:本地主機:8080
- 的User-Agent:Mozilla的/ 5.0(Macintosh上;英特爾的Mac OS X 10_11_6)爲AppleWebKit/537.36(KHTML,例如Gecko)鉻/ 54.0.2840.71 Safari瀏覽器/ 537.36
我收到一個錯誤代碼406 - 不可接受
我在使用謨這樣的請求無處不在,我從未有過這種問題。參數「roomId」仍然是一個正常的整數值。它如何引起Spring Mvc的問題?標題和運行代碼仍然完全相同。
當我在「findBySiteAndRoom」方法的第一行放置一個斷點時,在第一種情況下它會到達該點。但在第二種情況下,它在到達中斷點之前返回406錯誤代碼。
非常感謝您的幫助。
當我通過房間ID在requestparam而非pathvariable,它的工作與roomId I1.A.123:HTTP://本地主機:8080/API /活動/房間roomId = I1.A.123&時間戳= 2016 -11-11T12:02:34.421 + 0100 = pageSize的1 當我roomId後添加一個額外的詞,它的工作與房間ID I1.A.213:HTTP://本地主機:8080/API /活動/間/ I1.A.123/test?timestamp = 2016-11-11T12:02:34.421 + 0100&pageSize = 1 我們該如何解釋?這是Spring MVC中的錯誤嗎? –
當我在roomId值後面添加「/」時,它也在工作:http:// localhost:8080/api/activities/roomId/I1.A.123 /?timestamp = 2016-11-11T12:02:34.421 + 0100&pageSize = 10 –
@RequestMapping(value =「/ roomId/{roomId}」,produce =「application/json」) 或 @RequestMapping(value =「/ room/{roomId}」,產生= 「application/json」)? (roomId VS室) – kuhajeyan