본문 바로가기

반응형

RestTemplate

(5)
RestTemplate response generic type 사용하기 ParameterizedTypeReference를 사용한 List response 사용 예전에 restTemplate으로 list 타입 response를 받는 것에 대해 글을 작성한 적이 있다. 2018.11.16 - [Study/Java] - RestTemplate list 반환하기 응답이 List 일 때 ParameterizedTypeReference로 아래와 같이 사용한다. ResponseEntity response = restTemplate.exchange("url",HttpMethod.GET, null, new ParameterizedTypeReference() {}); List list = response.getBody(); Generic response type 사용하기 이 경우에 대해서도 ..
RestTemplate Generic responseType 사용 이전에 RestTemplate을 사용하면서 List 같은 Collection 형태로 반환받기 위한 방법에 대해 소개하는 글을 썼다. 2018/11/16 - [Study/Java] - RestTemplate list 반환하기 RestTemplate list 반환하기 요청을 반환받는 클래스가 다음과 같다고 가정한다. @Data public class ResultClass { private long idx; private String name; } List로 리턴 받는 방법 - 문제가 있음. 비추천 List list = restTe.. luvstudy.tistory.com 해당 방법은 ParameterizedTypeReference를 사용해서 리턴 값을 설정하는 방법인데 대략 다음과 같이 사용한다. List ..
Spring RestTemplate으로 요청 시 302 redirect 된 페이지의 response 결과받기 HttpStatus가 302 인 경우 브라우저에서는 해당 페이지로 리다이렉트 되어 화면이 처리된다. restTemplate으로 요청한 응답 결과의 HttpStatus가 302 인 경우는 해당 페이지로 리다이렉트 되지 않고 응답 결과만 반환받는다. 하지만 redirect된 결과로 응답을 받을 수 있는 기능이 있다. restTemplate에서 requestFactory를 apacheml httpclient를 사용하는 경우 지원되는 기능이다. 다음처럼 HttpClientBuilder에 redirectStrategy 설정을 하면 요청된 결과가 302인 경우 해당 페이지로 리다이렉트 된 결과를 반환해준다. RestTemplate restTemplate = new RestTemplate(); HttpComponen..
RestTemplate 응답 log 확인하기 Spring framework 5.1.6.RELEASE 기준으로 작성함 RestTemplate log 보기 RestTemplate의 응답을 확인하고자 하는 경우 아래처럼 로그를 추가하면 된다. logging.level.org.springframework.web.client=DEBUG 이 경우 body정보를 log로 남기게 되는데 다만 전제 조건이 있다. RestTemplate은 callback을 2가지 유형으로 처리를 한다. RequestCallback 설명 AcceptHeaderRequestCallback AcceptHeader를 만드는 Callback HttpEntityRequestCallback RequestBody를 만드는 Callback AcceptHeaderRequestCallback을 확장하..
RestTemplate list 반환하기 요청을 반환받는 클래스가 다음과 같다고 가정한다. @Data public class ResultClass { private long idx; private String name; } List로 리턴 받는 방법 - 문제가 있음. 비추천 List list = restTemplate.getForObject("url", List.class); 이 방법은 문제가 있다. 컴파일에는 문제가 없지만 호출하고 나서 list 값을 살펴보면 ResultClass 객체가 아닌 LinkedHashMap 객체를 가지고 있는 걸 확인할 수 있다. 그래서 만약 다음처럼 호출하는 순간 에러가 발생한다. List list = restTemplate.getForObject("url", List.class); ResultClass resu..

반응형