如何检查 header 不为空?
How to check that header is not empty?
我的端点中有一个类型为 UUID
的 header。我如何验证它不为空(--header 'My-Header;' \
在 curl 中)并抛出异常(我将使用 @ExceptionHandler
)以防它为空?
@RequestHeader(value = "My-Header") final UUID myHeader
@GetMapping("/nonRequiredHeader")
public ResponseEntity<String> evaluateNonRequiredHeader(
@RequestHeader(value = "optional-header", required = false) String optionalHeader) {
return new ResponseEntity<String>(String.format(
"Was the optional header present? %s!",
(optionalHeader == null ? "No" : "Yes")),HttpStatus.OK);
}
请关注:https://www.baeldung.com/spring-rest-http-headers
了解更多信息
如你所说
and throw an exception (I'm going to use @ExceptionHandler)
在你的控制器方法中保持原样@RequestHeader(value = "My-Header") final UUID myHeader
required
该注解的属性默认为真!
并且根据文档,在缺少的情况下会抛出 MissingRequestHeaderException
异常。
那么你可以处理这个异常
@ControllerAdvice
public class ErrorHandler {
@ExceptionHandler(MissingRequestHeaderException.class)
public ResponseEntity handleMissingHeaderException(MissingRequestHeaderException e) {
return return ResponseEntity.badRequest().body(String.format("%s header is missing from the request", e.getHeaderName()));
}
}
这样您也可以处理其他控制器方法中丢失的 headers。
我的端点中有一个类型为 UUID
的 header。我如何验证它不为空(--header 'My-Header;' \
在 curl 中)并抛出异常(我将使用 @ExceptionHandler
)以防它为空?
@RequestHeader(value = "My-Header") final UUID myHeader
@GetMapping("/nonRequiredHeader")
public ResponseEntity<String> evaluateNonRequiredHeader(
@RequestHeader(value = "optional-header", required = false) String optionalHeader) {
return new ResponseEntity<String>(String.format(
"Was the optional header present? %s!",
(optionalHeader == null ? "No" : "Yes")),HttpStatus.OK);
}
请关注:https://www.baeldung.com/spring-rest-http-headers 了解更多信息
如你所说
and throw an exception (I'm going to use @ExceptionHandler)
在你的控制器方法中保持原样@RequestHeader(value = "My-Header") final UUID myHeader
required
该注解的属性默认为真!
并且根据文档,在缺少的情况下会抛出 MissingRequestHeaderException
异常。
那么你可以处理这个异常
@ControllerAdvice
public class ErrorHandler {
@ExceptionHandler(MissingRequestHeaderException.class)
public ResponseEntity handleMissingHeaderException(MissingRequestHeaderException e) {
return return ResponseEntity.badRequest().body(String.format("%s header is missing from the request", e.getHeaderName()));
}
}
这样您也可以处理其他控制器方法中丢失的 headers。