在我的 Spring Boot 应用程序中,我试图在 afterCompletion()
中的响应中添加 header 我的方法HandlerInterceptorAdapter
类。
Controller 返回 ResponseEntity<MyResource>
对象如:
return new ResponseEntity<>(mr, HttpStatus.OK);
跟随 POST
请求。
在拦截器中,当我尝试向响应添加 header 时,它没有被添加。
但是,当我更改我的 Controller 以返回这样的响应时:
return new ResponseEntity<>(HttpStatus.OK);
然后就可以了。
为什么只有在响应主体不存在时才能添加 header ?
有没有办法在响应体存在时添加它?
最佳答案
感谢 Ali Deghani 的评论,我被指出了正确的方向,并创建了一个扩展 AbstractMappingJacksonResponseBodyAdvice
类的新类(它在下面实现了 ResponseBodyAdvice
)。
我也从 http://cubiccow.blogspot.co.za/2014/10/api-versioning-of-rest-services.html 得到了提示
这使我能够在 Controller 处理响应后,根据特定条件,使用新 header 成功修改响应。
关于java - 如何在 Spring HandlerInterceptorAdapter 中将 header 添加到 http 响应?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38377351/