mem*_*und 1 java spring spring-mvc httpresponse
我想返回204 no contenthttp状态代码。尽管我想添加一个自定义错误消息,其中提供了详细说明为何不存在任何内容的细节。
问题:我正在使用spring-mvc,并且在返回HttpStatus.NO_CONTENT类型时,响应主体始终被删除,并且对于客户端而言是空的!
@RestControllerAdvice
public class ExeptionHandler {
@ExceptionHandler(Exception.class)
@ResponseStatus(HttpStatus.NO_CONTENT)
public Object handler(HttpServletRequest req, Exception e) {
return new ResponseEntity<String>(e.getMessage(), HttpStatus.NO_CONTENT);
}
}
Run Code Online (Sandbox Code Playgroud)
如果我将类型更改为例如,HttpStatus.NOT_FOUND则错误消息将显示为响应正文。
如何使用204达到同样的效果?
我想返回一个
204无内容的HTTP状态代码。尽管我想添加一个自定义错误消息,其中提供了详细说明为何不存在任何内容的细节。
你不能
问题:我正在使用Spring MVC,并且在返回
HttpStatus.NO_CONTENT类型时,响应主体始终被删除,并且对于客户端而言是空的!
那是预期的行为。
如果我将类型更改为例如,
HttpStatus.NOT_FOUND则错误消息将显示为响应正文。如何使用204达到同样的效果?
您将无法通过实现它204。您误解了(并且可能滥用了)这样的状态代码。的目的204是指示服务器已成功满足请求,并且响应有效负载中没有其他要发送的内容。
供参考,请参阅如何在RFC 7231中定义此状态代码:
该
204(无内容)状态代码表明服务器已成功完成了请求,并没有额外的内容在响应有效载荷给全身。[...]甲
204响应由报头字段之后的第一空行终止,因为它不能包含消息体。[...]
根据情况,最好在响应有效负载中使用404或200使用空数组。这个答案可能会给您一些见解。
204 表示请求成功。它应该不包含错误消息。
如果发生错误,则应使用不同的 HTTP 代码。
请参阅https://httpstatuses.com/204
204 响应由标头字段后的第一个空行终止,因为它不能包含消息正文。
| 归档时间: |
|
| 查看次数: |
6336 次 |
| 最近记录: |