Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

springframework get all request headers

Tags:

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);     } } 
like image 259
Kevin Avatar asked Jul 28 '11 17:07

Kevin


People also ask

How can you obtain a request header in a controller method?

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.


1 Answers

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.

like image 188
jtoberon Avatar answered Sep 28 '22 01:09

jtoberon