스프링 사용하다가...
controller에서 이렇게 선언해보았다...
public TestDTO businessTest(@RequestBody TestDTO dto2, @RequestHeader(value="api-key") String key) throws Exception {
안된다.. ㅋㅋ
대부분 controller에 @RestController 가 선언되어 있을텐데 내부에 @ResponseBody를 포함하고 있다.
@ResponseBody 사용시에는 @RequestBody와 @RequestHeader 를 혼용하여 사용할 수 없다는군..
그래서 해결법은
@RequestMapping("/something")
public ResponseEntity<String> handle(HttpEntity<byte[]> requestEntity) throws UnsupportedEncodingException {
String requestHeader = requestEntity.getHeaders().getFirst("MyRequestHeader"));
byte[] requestBody = requestEntity.getBody();
// do something with request header and body
HttpHeaders responseHeaders = new HttpHeaders();
responseHeaders.set("MyResponseHeader", "MyValue");
return new ResponseEntity<String>("Hello World", responseHeaders, HttpStatus.CREATED);
}
이런식으로 하면 된답니다..
참고 ) http://stackoverflow.com/questions/14447731/optional-request-header-in-spring-rest-service
근데 그냥 저는....
@RequestMapping(value = "/businesses/test/{bizId}/{testId}", method = RequestMethod.POST)
public TestDTO businessTest(RemainDTO model1, @RequestBody TestDTO model2, HttpServletRequest req) throws Exception {
System.out.println("model1 : "+model1);
System.out.println("model2 : "+model2);
System.out.println("key : "+req.getHeader("api_key"));
return null;
}
HttpServletRequest 가져와서 getHeader 하는게 훨씬 낫네요 ㅋㅋ
'Dev. 스프링 > 참고소스 및 예제' 카테고리의 다른 글
spring cron scheduler 표현식 양식 및 예제 (0) | 2017.01.06 |
---|---|
페이징처리 예제 - 동적쿼리, include taglib 이용 (0) | 2012.12.03 |
로그인/로그아웃시 현재 페이지 그대로 있기 (0) | 2012.12.03 |
Spring MVC 패턴에서 ajax를 활용한 실시간 댓글달기 소스 (44) | 2012.11.28 |
Spring, Ajax, JQuery UI 를 이용한 자동 완성(Autocomplete) 텍스트 박스 만들기 (2) | 2012.10.17 |