[반응형 스택에서 이에 상응하는 내용 보기]
@RequestHeader
annotation을 사용하여 요청 헤더를 컨트롤러의 메서드 인수에 바인딩할 수 있습니다. 헤더가 포함된 다음 요청을 고려하세요.
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
헤더의 값을 가져옵니다.
@GetMapping("/demo")
public void handle(
@RequestHeader("Accept-Encoding") String encoding, // (1)
@RequestHeader("Keep-Alive") long keepAlive) { // (2)
//...
}
(1) Accept-Encoding
헤더의 값을 가져옵니다.
(2) Keep-Alive
헤더의 값을 가져옵니다.
대상 메소드 매개변수 유형이 String
이 아닌 경우 type conversion이 자동으로 적용됩니다. Type Conversion을 참조하세요.
@RequestHeader
annotation이 Map<String, String>
, MultiValueMap<String, String>
또는 HttpHeaders
인수에 사용되면 맵이 모든 헤더 값으로 채워집니다.
[Tip]
쉼표로 구분된 문자열을 문자열의 배열이나 컬렉션 또는 유형 변환 시스템에 알려진 다른 유형으로 변환하는 데 기본 지원이 제공됩니다. 예를 들어@RequestHeader("Accept")
로 주석이 달린 메서드 매개 변수는String
유형일 수 있지만String[]
또는List<String>
일 수도 있습니다.