2011-07-28 23 views
14

Sé que spring3 tiene @RequestHeader para obtener un solo encabezado de solicitud en un controlador. Me pregunto si hay una manera fácil de obtener TODOS los encabezados de solicitud. Estoy esperando algo como esto:springframework obtener todos los encabezados de solicitud

@RequestMapping(value="/some/url",RequestMethod.GET) 
public void endpoint(RequestParams params, BindingResult result, @RequestHeader MultiValueMap<String,String> headers, HttpServletRequest request, ModelMap model) { 

} 

Actualmente estoy haciendo algo como esto:

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); 
    } 
} 

Respuesta

27

Desde el Javadocs:

@RequestHeader se puede usar en un mapa , Parámetro de método MultiValueMap o HttpHeaders para obtener acceso a todos los encabezados de solicitud.

Más información está disponible en línea here y there.

+0

+1 ¡Bien visto! – skaffman

Cuestiones relacionadas