어플리케이션이 RestTemplate를 생성하고, URI, HTTP 메소드 등의 헤더를 담아 요청
RestTemplate는 HttpMessageConverter를 사용하여 requestEntity를 요청 메세지로 변환
RestTemplate는 ClientHttpRequestFactory로 부터 ClientHttpRequest를 가져와서 요청을 보냄
ClientHttpRequest 는 요청메세지를 만들어 HTTP 프로토콜을 통해 서버와 통신
RestTemplate 는 ResponseErrorHandler 로 오류를 확인하고 있다면 처리로직을 태움
ResponseErrorHandler 는 오류가 있다면 ClientHttpResponse 에서 응답데이터를 가져와서 처리
RestTemplate 는 HttpMessageConverter 를 이용해서 응답메세지를 java object(Class responseType) 로 변환
어플리케이션에 반환
@Component
public class sendData {
private static RestTemplate restTemplate;
public static ResponseEntity<SubmitData> sendEngine() {
int SubNum = 123;
int Pnum = 1;
Object Pcode = "코드";
SubmitData requestDto = SubmitData.builder()
.SubNum(SubNum)
.Pnum(Pnum)
.Pcode(Pcode)
.build();
HttpHeaders headers = new HttpHeaders();
headers.add("Content-Type", "application/json");
HttpEntity<SubmitData> entity = new HttpEntity<>(requestDto, headers);
String url = "http://localhost:8080/send";
return restTemplate.exchange(url, HttpMethod.POST, entity, SubmitData.class);
}
}
http://localhost:8080/send
로 요청