我们如何在Spring启动控制器中检索自定义标头?

问题描述 投票:0回答:2

我不是在寻找以下标题:

Host                    localhost:8080
Accept                  text/html,application/xhtml+xml,application/xml;q=0.9
Accept-Language         fr,en-gb;q=0.7,en;q=0.3
Accept-Encoding         gzip,deflate
Accept-Charset          ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive              300

而是在寻找我在下面的cURL命令中传递的自定义标头:

curl -v -b ./cookie.txt -H “User:username” -d “[email protected]” -X GET http://localhost:9898/signature

- 想要在我的Spring启动控制器中检索“-H”用户:用户名“,请告诉我如何在Spring启动控制器中检索此自定义标头。

spring-boot
2个回答
1
投票

在您的控制器中,您可以使用注释@RequestHeader按名称访问标头或拥有所有标头。

另一种选择是使用HttpServletRequest

public void myControllerPoint(@RequestHeader("User") String user,
                              @RequestHeader @RequestHeader HttpHeaders headers, 
                              HttpServletRequest request) {

    String theUserHeader = headers.get("User"));
    String userFromServletRequest = request.getHeader("User");
}

0
投票

对于任何标头,控制器中的@RequestHeader属性将为您提供传递的标头值。我唯一的错误是,cURL命令,有错误的引号(“而不是这个”),因此当我在控制器中尝试@RequestHeader时,一旦我意识到cURL命令不正确,总是没有得到响应,然后能够得到理想的结果。无论如何,谢谢。

© www.soinside.com 2019 - 2024. All rights reserved.