springframework获取所有请求标头

Kev*_*vin 17 java servlets spring-mvc

我知道spring3必须@RequestHeader在控制器中获得单个请求头.我想知道是否有一种简单的方法来获取所有请求标头?我希望这样的事情:

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

}
Run Code Online (Sandbox Code Playgroud)

目前我正在做这样的事情:

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);
    }
}
Run Code Online (Sandbox Code Playgroud)

jto*_*ron 37

来自Javadocs:

@RequestHeader可用于Map,MultiValueMap或HttpHeaders方法参数,以获取对所有请求标头的访问权限.

更多信息可在网上在这里那里.