我有我的@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 个错误请求的原因