首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在Spring控制器中访问所有@RequestHeader键值作为Map

在Spring控制器中访问所有@RequestHeader键值作为Map
EN

Stack Overflow用户
提问于 2016-07-18 20:10:20
回答 3查看 16.3K关注 0票数 10

我正在努力寻找一种方法,通过这种方法,我可以将@RequestHeader注释中的所有键值填充到Map中。我尝试用Google搜索它,但我所能找到的是一种将每个键值映射到一个参数的方法。

代码语言:javascript
复制
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestHeader;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class HelloController {

    @RequestMapping(value = "/hello.htm")
    public String hello(@RequestHeader(value="User-Agent") String userAgent)

        //..
    }
}

但我想要达到这样的效果。

@RequestHeader Map headerParam;

这样我就可以遍历Map并根据需要使用所有标头值。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-07-19 06:08:20

你可以像下面这样实现它-

代码语言:javascript
复制
@RequestMapping(value = "/hello.htm")
public String hello(@RequestHeader HttpHeaders httpHeaders){
    Map<String,String> headerMap=httpHeaders.toSingleValueMap();
    //TODO httpHeaders will have many methods
}

我希望它能对你有所帮助。谢谢。

票数 23
EN

Stack Overflow用户

发布于 2021-05-27 05:27:16

如果您使用spring boot,下面的映射将会起作用

@RequestHeader Map headers

代码语言:javascript
复制
@PostMapping(value = "/customer", produces = { "application/json" })
ResponseEntity<String> findName(@RequestHeader Map<String, String> headers) {

}

票数 1
EN

Stack Overflow用户

发布于 2019-06-24 04:51:34

代码语言:javascript
复制
@Controller
public class HelloController {

    @RequestMapping(value = "/hello.htm")
    public String hello(@RequestHeader final Map<String, String> headerMap)

        //..
    }
}
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38436363

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档