状态码406(Not Acceptable) 错误问题解决方法
项目场景:环境:Java 1.8SpringBoot2.1.9问题描述:Postman进行接口测试,报 406:Not Acceptable警告信息:org.springframework.web.HttpMediaTypeNotAcceptableException: Could not find acceptable representation(浏览器找不到合适的类型来显示请求接口的返回值)
·
项目场景:
环境:
Java 1.8
SpringBoot 2.1.9
问题描述:
Postman进行接口测试,报 406:Not Acceptable
警告信息:org.springframework.web.HttpMediaTypeNotAcceptableException: Could not find acceptable representation(浏览器找不到合适的类型来显示请求接口的返回值)
代码如下
@PostMapping(value = "/login")
public Object login(User user, HttpServletResponse response) {
JSONObject jsonObject = new JSONObject();
User userForBase = new User();
userForBase.setId(userService.findByUsername(user).getId());
userForBase.setUsername(userService.findByUsername(user).getUsername());
userForBase.setPassword(userService.findByUsername(user).getPassword());
if (!userForBase.getPassword().equals(user.getPassword())) {
jsonObject.put("message", "登录失败,密码错误");
return jsonObject;
} else {
String token = tokenService.getToken(userForBase);
jsonObject.put("token", token);
Cookie cookie = new Cookie("token", token);
cookie.setPath("/");
response.addCookie(cookie);
return jsonObject;
}
}
原因分析:
这段代码的意思是返回 json 类型的响应数据, 与我们接口的返回值不同, 所以无法返回
解决方案:
1.将代码改为
@RequestMapping(value = "/login", method = RequestMethod.GET,produces = "applications/json;charset=UTF-8")
2.将返回类型改为map
Map<String, Object> map=new HashMap<String, Object>();
.
.
.
.
String token = tokenService.getToken(userForBase);
map.put("token",token);
Cookie cookie = new Cookie("token", token);
cookie.setPath("/");
response.addCookie(cookie);
return map;
更多推荐
已为社区贡献2条内容
所有评论(0)