@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)
	//...
}
1Accept-Encoding ヘッダーの値を取得します。
2Keep-Alive ヘッダーの値を取得します。
@GetMapping("/demo")
fun handle(
		@RequestHeader("Accept-Encoding") encoding: String, (1)
		@RequestHeader("Keep-Alive") keepAlive: Long) { (2)
	//...
}
1Accept-Encoding ヘッダーの値を取得します。
2Keep-Alive ヘッダーの値を取得します。

ターゲットメソッドのパラメーター型が String でない場合、型変換が自動的に適用されます。型変換を参照してください。

@RequestHeader アノテーションが Map<String, String>MultiValueMap<String, String>HttpHeaders 引数で使用される場合、マップにはすべてのヘッダー値が入力されます。

コンマ区切りの文字列を、文字列の配列またはコレクション、型変換システムに既知の他の型に変換するための組み込みサポートが利用可能です。例: @RequestHeader("Accept") アノテーションが付けられたメソッドパラメーターは、型 String になりますが、String[] または List<String> にもなります。