@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

  • 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,將自動應用型別轉換。請參閱型別轉換

當在 Map<String, String>MultiValueMap<String, String>HttpHeaders 引數上使用 @RequestHeader 註解時,該 map 將填充所有請求頭的值。

內建支援可以將逗號分隔的字串轉換為字串陣列或集合,或型別轉換系統已知的其他型別。例如,使用 @RequestHeader("Accept") 註解的方法引數可以是 String 型別,也可以是 String[]List<String> 型別。