首页 > 解决方案 > 我们需要如何在 Spring Boot 控制器中检索自定义标头?

问题描述

我不是在寻找以下标题:

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 “user=testacct1@youview.com” -X GET http://localhost:9898/signature

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

标签: spring-boot

解决方案


在您的控制器中,您可以使用注释@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");
}

推荐阅读