在我的Spring Boot应用程序中,我正在尝试在afterCompletion()
类的HandlerInterceptorAdapter
方法中为我的回复添加标题。
控制器返回ResponseEntity<MyResource>
对象,例如:
return new ResponseEntity<>(mr, HttpStatus.OK);
跟随POST
请求。
在拦截器中,当我尝试向响应添加标头时,它不会被添加。
但是,当我更改控制器以返回响应时:
return new ResponseEntity<>(HttpStatus.OK);
然后它有效。
为什么只有在没有响应主体时才能添加标题?
当响应体存在时,有没有办法添加它?
答案 0 :(得分:1)
感谢Ali Deghani的评论,我指出了正确的方向,并创建了一个扩展AbstractMappingJacksonResponseBodyAdvice
类(在其下面实现ResponseBodyAdvice
)的新类。
我也从http://cubiccow.blogspot.co.za/2014/10/api-versioning-of-rest-services.html
得到了提示这使我能够在控制器处理后,根据某些条件成功修改带有新标题的响应。