개발은 하는건가..

[springboot] RestTemplate 를 이용한 간단하게 http 요청 본문

SpringBoot , Thymeleaf

[springboot] RestTemplate 를 이용한 간단하게 http 요청

수동애비 2024. 1. 3. 10:36
반응형

springboot 에서 다른 서버로 http 요청이 필요할 때 RestTemplate 을 이용해서 간단하게 요청 및 응답 수신이 가능하다.


구현 함수 예)

 

public <T> ResponseEntity<T> sendHttpPostMessage(String url, MultiValueMap<String, String> param, Class<T> tClass) {
        HttpHeaders httpHeaders = new HttpHeaders();
        
        // 필요한 헤더 항목을 추가
        httpHeaders.add("", "");

        HttpEntity<MultiValueMap<String, String>> entity = new HttpEntity<>(param, httpHeaders);

        RestTemplate restTemplate = new RestTemplate();

        return restTemplate.exchange(url, HttpMethod.POST, entity, tClass);
}

 

사용 예)

String id = "test";
String token = "sdfjhvxcklhsljfoiwelkvcjcklvjsdkljflw==";
String url = "https://요청 대상 url";

// 필요한 파라메터를 MultiValueMap 을 이용하여 추가
MultiValueMap<String, String> mvm = new LinkedMultiValueMap<>();

mvm.add("userid", id);
mvm.add("token", token);

// ResponseEntity 에 응답받을 데이터 형태의 클래스를 지정 및 클래스 타입을 파라메터로 전달
ResponseEntity<ResponseDTO> result = sendHttpPostMessage(url, mvm, ResponseDTO.class);

if (result.getStatusCode() != HttpStatus.OK) {
    // TODO. 요청 실패에 대한 처리
    return;
}

ResponseDTO rsp = result.getBody();

// TODO. rsp 데이터를 처리.

 

Comments