状态码406(Not Acceptable) 错误问题解决方法
项目场景:
环境:
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;
下一篇:
java根据生日计算年龄工具类