Spring MVC 的带有字符串返回类型的 @ResponseBody 方法中的 HTTP 400 错误处理
使用 Spring MVC 实现 API 时,处理这一点至关重要优雅地犯错误。响应的一种常见错误代码是 HTTP 400,表示“错误请求”。
在给定的场景中,match 方法返回包含在 @ResponseBody 中的字符串,您可能想知道如何使用 HTTP 400 进行响应错误代码。使用 ResponseEntity
要解决此问题,请考虑将 match 方法的返回类型更改为 ResponseEntity
更新的方法:
<code class="java">@RequestMapping(value = "/matches/{matchId}", produces = "application/json") @ResponseBody public ResponseEntity<String> match(@PathVariable String matchId) { String json = matchService.getMatchJson(matchId); if (json == null) { return new ResponseEntity<>(HttpStatus.BAD_REQUEST); } return new ResponseEntity<>(json, HttpStatus.OK); }</code>
此修改后的方法允许您返回带有适当的 HTTP 状态代码。如果 matchId 无效,您可以返回 HTTP 400 状态的 ResponseEntity。对于有效的请求,您可以返回带有 HTTP 200 状态和 JSON 响应的 ResponseEntity。
Spring 4.1 及更高版本:
从 Spring 4.1 开始,ResponseEntity 类提供您可以使用更简洁的方法的辅助方法:
更新方法(Spring 4.1):
<code class="java">@RequestMapping(value = "/matches/{matchId}", produces = "application/json") @ResponseBody public ResponseEntity<String> match(@PathVariable String matchId) { String json = matchService.getMatchJson(matchId); if (json == null) { return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(null); } return ResponseEntity.ok(json); }</code>
以上是如何处理带有字符串返回类型的 Spring MVC @ResponseBody 方法中的 HTTP 400 错误?的详细内容。更多信息请关注PHP中文网其他相关文章!