[SPRING] Spring MVC REST 컨트롤러에서 HTTP 헤더 정보에 액세스하는 방법은 무엇입니까?
SPRINGSpring MVC REST 컨트롤러에서 HTTP 헤더 정보에 액세스하는 방법은 무엇입니까?
나는 웹 프로그래밍에 익숙하지 않은데, 특히 자바에서 프로그래밍을 처음 접했을 때 헤더와 바디가 무엇인지 배웠다.
저는 Spring MVC를 사용하여 RESTful 서비스를 작성하고 있습니다. 컨트롤러에서 @RequestMapping을 사용하여 간단한 서비스를 만들 수 있습니다. 내 REST 서비스 컨트롤러에서 내 메서드에 대한 요청에서 HTTP 헤더 정보를 얻는 방법을 이해하는 데 도움이 필요하다. 머리글을 구문 분석하고 일부 특성을 얻고 싶습니다.
정보를 얻는 방법에 대해 설명해 주시겠습니까?
해결법
-
==============================
1.@RequestHeader로 매개 변수에 주석을 추가하면 매개 변수가 헤더 정보를 검색합니다. 그래서 당신은 다음과 같이 할 수 있습니다 :
@RequestHeader로 매개 변수에 주석을 추가하면 매개 변수가 헤더 정보를 검색합니다. 그래서 당신은 다음과 같이 할 수 있습니다 :
@RequestHeader("Accept")
Accept 헤더를 얻는다.
그래서 문서에서 :
@RequestMapping("/displayHeaderInfo.do") public void displayHeaderInfo(@RequestHeader("Accept-Encoding") String encoding, @RequestHeader("Keep-Alive") long keepAlive) { }
Accept-Encoding 및 Keep-Alive 헤더 값은 각각 encoding 및 keepAlive 매개 변수에 제공됩니다.
걱정 마세요. 우리는 모두 뭔가 멍청하다.
-
==============================
2.모든 요청 헤더에 액세스하려면 HttpHeaders 메서드 매개 변수와 함께 @RequestHeader 주석을 사용할 수 있습니다.
모든 요청 헤더에 액세스하려면 HttpHeaders 메서드 매개 변수와 함께 @RequestHeader 주석을 사용할 수 있습니다.
@RequestMapping(value = "/restURL") public String serveRest(@RequestBody String body, @RequestHeader HttpHeaders headers) { // Use headers to get the information about all the request headers long contentLength = headers.getContentLength(); // ... StreamSource source = new StreamSource(new StringReader(body)); YourObject obj = (YourObject) jaxb2Mashaller.unmarshal(source); // ... }
-
==============================
3.예를 들어 Header 매개 변수의 해결책은 user = "test"입니다.
예를 들어 Header 매개 변수의 해결책은 user = "test"입니다.
@RequestMapping(value = "/restURL") public String serveRest(@RequestBody String body, @RequestHeader HttpHeaders headers){ System.out.println(headers.get("user")); }
from https://stackoverflow.com/questions/19556039/how-to-get-access-to-http-header-information-in-spring-mvc-rest-controller by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] Autowiring 실패 : 관리 유형이 아닙니다. (0) | 2018.12.30 |
---|---|
[SPRING] 스프링 자바 설정에서 @Bean 어노테이션으로 된 메소드 호출하기 (0) | 2018.12.30 |
[SPRING] JPA 트랜잭션을 커밋 할 수 없음 : rollbackOnly로 표시된 트랜잭션 (0) | 2018.12.29 |
[SPRING] 하나의 Spring 애플리케이션에서 web.xml에 여러 서블릿을 등록하는 방법 (0) | 2018.12.29 |
[SPRING] Spring Data JPA는 메소드 이름 해석을 사용하여 엔티티를 셀 수있는 방법이 있습니까? (0) | 2018.12.29 |