I know that spring3 has @RequestHeader
to get a single request header in a controller. I'm wondering if there is an easy way to get ALL the request headers? I'm hoping for something like this:
@RequestMapping(value="/some/url",RequestMethod.GET) public void endpoint(RequestParams params, BindingResult result, @RequestHeader MultiValueMap<String,String> headers, HttpServletRequest request, ModelMap model) { }
Currently I'm doing something like this:
MultiValueMap<String,String> headers = new HttpHeaders(); for (Enumeration names = request.getHeaderNames(); names.hasMoreElements();) { String name = (String)names.nextElement(); for (Enumeration values = request.getHeaders(name); values.hasMoreElements();) { String value = (String)values.nextElement(); headers.add(name,value); } }
First, we used the @RequestHeader annotation to supply request headers to our controller methods. After checking out the basics, we took a detailed look at the attributes for the @RequestHeader annotation. The example code is available over on GitHub.
From the Javadocs:
@RequestHeader can be used on a Map, MultiValueMap, or HttpHeaders method parameter to gain access to all request headers.
More info is available online here and there.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With