@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-EncodingKeep-Alive 请求头的值:

Java
@GetMapping("/demo")
public void handle(
		@RequestHeader("Accept-Encoding") String encoding, [id="CO1-1"][id="CO1-1"][id="CO1-1"](1)
		@RequestHeader("Keep-Alive") long keepAlive) { [id="CO1-2"][id="CO1-2"][id="CO1-2"](2)
	//...
}
<1>  获取 `Accept-Encoding` 请求头的值。
<1>  获取 `Keep-Alive` 请求头的值。
Kotlin
@GetMapping("/demo")
fun handle(
		@RequestHeader("Accept-Encoding") encoding: String, [id="CO2-1"][id="CO1-3"][id="CO2-1"](1)
		@RequestHeader("Keep-Alive") keepAlive: Long) { [id="CO2-2"][id="CO1-4"][id="CO2-2"](2)
	//...
}
<1>  获取 `Accept-Encoding` 请求头的值。
<1>  获取 `Keep-Alive` 请求头的值。

如果目标方法参数类型不是 String,则会自动应用类型转换。请参阅 类型转换

@RequestHeader 注解用于 Map<String, String>MultiValueMap<String, String>HttpHeaders 参数时,该映射会填充所有请求头值。

内置支持可用于将逗号分隔的字符串转换为字符串数组或集合,或转换为类型转换系统已知的其他类型。例如,用 @RequestHeader("Accept") 注解的方法参数可以是 String 类型,也可以是 String[]List<String> 类型。