我使用 REST API 开发了一个 Spring MVC 应用程序。
我在控制器中有这个方法:
@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;
}
当我提出这个获取请求时:
使用此请求参数:
- 接受:应用程序/json
- 接受编码:gzip、deflate、sdch、br
- 接受语言:fr-FR,fr;q=0.8,en-US;q=0.6,en;q=0.4
- 缓存控制:无缓存
- 饼干:_ga=GA1.1.486025197.1475764350;JSESSIONID=6716A5824088BC0F46A6B74D5FB25A3E
- 主机:本地主机:8080
- 用户代理:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.71 Safari/537.36
我得到一个正确的 JSON 对象作为响应。
但是当我将参数“roomId”从 I1.A.122 更改为 I1.A.123 时:
使用此请求参数:
- 接受:应用程序/json
- 接受编码:gzip、deflate、sdch、br
- 接受语言:fr-FR,fr;q=0.8,en-US;q=0.6,en;q=0.4
- 缓存控制:无缓存
- 饼干:_ga=GA1.1.486025197.1475764350;JSESSIONID=6716A5824088BC0F46A6B74D5FB25A3E
- 主机:本地主机:8080
- 用户代理:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.71 Safari/537.36
我收到错误代码406 - 不可接受
我在项目中到处使用这种请求,我从来没有遇到过这种问题。参数“roomId”仍然是一个普通的整数值。它如何与 Spring Mvc 产生问题?标题和运行代码仍然完全相同。
当我在“findBySiteAndRoom”方法的第一行放置一个断点时,在第一种情况下它到达了该点。但在第二种情况下,它在到达断点之前返回 406 错误代码。
预先感谢您的帮助。