我如何记录主机 headers 的 http 请求(Spring 启动)
How can i log host headers of http requests (Spring Boot)
我需要查看通过我的 Spring 启动应用程序的所有请求的主机 headers 是什么。我尝试记录所有请求 headers 但我似乎无法记录主机 headers.
用于打印所有 headers.
的示例代码
@GetMapping("/headers")
public String getHeaders(@RequestHeader Map<String, String> headers) {
headers.forEach((key, value) -> {
System.out.println(String.format("Header '%s' = %s", key, value));
});
return "success";
}
这对你有帮助!
创建一个过滤器,您将能够看到所有可用的 header。这是示例代码:
@Component
@Order(Ordered.HIGHEST_PRECEDENCE)
public class RequestFilter implements Filter {
public RequestFilter() {}
@Override
public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest) req;
HttpServletRequest httpRequest = (HttpServletRequest) request;
Enumeration<String> headerNames = httpRequest.getHeaderNames(); //print this to see all headers
httpRequest.getHeader("host"); //returns the host header
chain.doFilter(req, res);
}
@Override
public void init(FilterConfig filterConfig) {}
@Override
public void destroy() {}
}
我需要查看通过我的 Spring 启动应用程序的所有请求的主机 headers 是什么。我尝试记录所有请求 headers 但我似乎无法记录主机 headers.
用于打印所有 headers.
的示例代码@GetMapping("/headers")
public String getHeaders(@RequestHeader Map<String, String> headers) {
headers.forEach((key, value) -> {
System.out.println(String.format("Header '%s' = %s", key, value));
});
return "success";
}
这对你有帮助!
创建一个过滤器,您将能够看到所有可用的 header。这是示例代码:
@Component
@Order(Ordered.HIGHEST_PRECEDENCE)
public class RequestFilter implements Filter {
public RequestFilter() {}
@Override
public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest) req;
HttpServletRequest httpRequest = (HttpServletRequest) request;
Enumeration<String> headerNames = httpRequest.getHeaderNames(); //print this to see all headers
httpRequest.getHeader("host"); //returns the host header
chain.doFilter(req, res);
}
@Override
public void init(FilterConfig filterConfig) {}
@Override
public void destroy() {}
}