메서드 | HTTP | 설명 |
---|---|---|
getForObject | GET | URL 주소로 GET 요청, return 객체 |
getForEntity | GET | URL 주소로 GET 요청, return ResponseEntity |
postForLocation | POST | URL 주소로 POST 요청, return 헤더에 저장된 URI |
postForObject | POST | URL 주소로 POST 요청, return 객체 |
postForEntity | POST | URL 주소로 POST 요청, return ResponseEntity |
execute | any | Request/ Response 콜백을 수정할 수 있음 |
exchange | any | HTTP 헤더를 새로 만들 수 있고 HTTP의 모든 메서드도 사용 가능 |
Map<String, Object> map = new HashMap<>(); // 요청시 보낼 데이터
map.put("data, data);
RestTemplate restTemplate = new RestTemplate();
String result = "";
try{
result = restTemplate.postForObject([요청보낼 uri], map, String.class);
}catch (Exception e) {
e.printStackTrace();
}
JSONParser jsonParser = new JSONParser();
Object obj = jsonParser.parse(result);
JSONObject jsonObj = (JSONObject) obj;
1. RestTemplate를 생성하고, URI, HTTP메소드 등의 헤더를 담아 요청
2. RestTemplate는 HttpMessageConverter를 사용하여 requestEntity를 요청메세지로 변환
3. RestTemplate는 ClientHttpRequestFactory로 부터 ClientHttpRequest를 가져와 요청
4. ClientHttpRequest는 요청메세지를 만들어 HTTP 프로토콜을 통해 서버와 통신
5. RestTemplate는 ResponseErrorHandler로 오류를 확인 후 있다면 처리
6. ResponseErrorHandler는 오류가 있다면 ClientHttpResponse에서 응답데이터를 가져와서 처리
7. RestTemplate는 HttpMessageConverter를 이용해 응답메세지를 java object(Class responseType)로 변환
8. 어플리케이션에 반환
참고
1. RestTemplate (정의, 특징, URLConnection, HttpClient, 동작원리, 사용법, connection pool 적용)
2. 스프링 RestTemplate 정리(요청 함)