파란하늘의 지식창고
RestTemplate response generic type 사용하기
Study/Java 2023. 5. 5. 02:17

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 사용
Study/Java 2020. 1. 28. 08:44

이전에 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 결과받기
Study/Java 2019. 8. 9. 15:28

HttpStatus가 302 인 경우 브라우저에서는 해당 페이지로 리다이렉트 되어 화면이 처리된다. restTemplate으로 요청한 응답 결과의 HttpStatus가 302 인 경우는 해당 페이지로 리다이렉트 되지 않고 응답 결과만 반환받는다. 하지만 redirect된 결과로 응답을 받을 수 있는 기능이 있다. restTemplate에서 requestFactory를 apacheml httpclient를 사용하는 경우 지원되는 기능이다. 다음처럼 HttpClientBuilder에 redirectStrategy 설정을 하면 요청된 결과가 302인 경우 해당 페이지로 리다이렉트 된 결과를 반환해준다. RestTemplate restTemplate = new RestTemplate(); HttpComponen..

article thumbnail
RestTemplate 응답 log 확인하기
Study/Java 2019. 6. 20. 08:23

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 반환하기
Study/Java 2018. 11. 16. 17:09

요청을 반환받는 클래스가 다음과 같다고 가정한다. @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..