我需要编辑我的HttpResponse以添加标头值.我正在寻找单点来实现它,并发现这ResponseBodyadvice将有所帮助.
但是我的新课程中的两种方法都没有被调用过.你能否告诉我是否错过了任何配置.
@ControllerAdvice
public class EditResponseHeader implements ResponseBodyAdvice<object> {
@Override
public boolean supports(MethodParameter returnType,
Class<? extends HttpMessageConverter<?>> converterType) {
return true;
}
....
@Override
public Object beforeBodyWrite(Object body, MethodParameter returnType,
MediaType selectedContentType,
Class<? extends HttpMessageConverter<?>> selectedConverterType,
ServerHttpRequest request, ServerHttpResponse response) {
....
return body;
}
}
Run Code Online (Sandbox Code Playgroud) 在我注意到我的代码可能在经典模式下的服务器上运行之前,我正在使用Response.Header.Add().在这种情况下,异常"此操作需要IIS集成管道模式".被提出来了.
我切换到Response.AddHeader()来解决我的问题.此功能似乎较旧,但不会弃用.我想知道,你有没有理由在Response.AddHeader()上使用Response.Header.Add()?你能解释一下吗?