@RequestHeader
您可以使用@RequestHeader
注解将请求头绑定到控制器中的方法参数。
考虑以下带有头部的请求:
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
以下示例获取Accept-Encoding
和Keep-Alive
头的值:
-
Java
-
Kotlin
@GetMapping("/demo")
public void handle(
@RequestHeader("Accept-Encoding") String encoding, (1)
@RequestHeader("Keep-Alive") long keepAlive) { (2)
//...
}
1 | 获取Accept-Encoding 头的值。 |
2 | 获取Keep-Alive 头的值。 |
@GetMapping("/demo")
fun handle(
@RequestHeader("Accept-Encoding") encoding: String, (1)
@RequestHeader("Keep-Alive") keepAlive: Long) { (2)
//...
}
1 | 获取Accept-Encoding 头的值。 |
2 | 获取Keep-Alive 头的值。 |
如果目标方法参数类型不是String
,则会自动应用类型转换。请参阅类型转换。
当@RequestHeader
注解用于Map<String, String>
、MultiValueMap<String, String>
或HttpHeaders
参数时,该映射将填充所有头值。
内置支持可将逗号分隔的字符串转换为字符串数组或集合,或其他类型,这些类型已知于类型转换系统。例如,使用@RequestHeader("Accept") 注解的方法参数可以是String ,也可以是String[] 或List<String> 。 |