ResponseEntity 在处理验证错误时不响应 .status



我有我的@ControllerAdvice来处理我的 Rest API 上的异常。 它看起来像这样:

@RestControllerAdvice
public class GlobalResponseEntityExceptionHandler {
@ExceptionHandler(MethodArgumentNotValidException.class)
public ResponseEntity handleValidtionErrors(MethodArgumentNotValidException ex) {
return ResponseEntity.badRequest()
.contentType(MediaType.APPLICATION_JSON)
.body(ex.getBindingResult());
}

当我想要它时,我有 400 是可以的,但我可以用return ResponseEntity.ok()替换return ResponseEntity.badRequest(),它仍然具有 HTTP 状态 400。

我做错了什么?

在这种情况下,您需要用@ResponseStatus(HttpStatus.OK)注释您的方法,使其返回 200 OK。看看这个

http://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/web/bind/annotation/ResponseStatus.html

它还指出,

当处理程序 方法被调用并覆盖通过其他方式设置的状态信息, 如响应实体或"重定向:"。

我相信这就是为什么即使您使用return ResponseEntity.OK,您仍然会收到 400 个错误请求的原因

最新更新