[Spring] RestTemplate 클래스 활용한 http api 데이터 전송 샘플

Jinbro·2022년 3월 11일
0

Spring

목록 보기
2/5

HTTP api : server to server 통신

  • RestTemplate 클래스 활용
  • Map 데이터 전송
  • POST http method

샘플 소스

import org.springframework.web.client.RestTemplate;
import org.springframework.http.*;
import org.springframework.util.*;

@Getter
private RestTemplate restTemplate;

/* HTTP api 데이터 전송 */
private map<String, Object> sendHttpPost(String url, HttpHeaders requestHeader, Map requestBody) {
	ResponseEntity<Map> responseEntity = null;
	responseEntity = restTemplate.exchange(url, HttpMethod.POST, requestHeader, requestBody, Map.class);
    return responseEntity.getBody();
}

/* HTTP api 호출 샘플 */
public String getAccessToken() {
	String accessToken = "";
	// 1. targer server url 선언
	String serverUrl = "http(s)://{host}:{port}/{path}";
    // 2. 요청 Header 선언
    HttpHeaders requestHeader = new HttpHeaders();
    requestHeader.add("Content-Type", "application/x-www-form-urlencoded")
    // 3. 요청 Body 선언
    MultiValueMap<String, String> requestBody = new LinkedMultivalueMap<>();
    requestBody.add("testData", "Y");
    // 4. HTTP api 호출
    Map<String, Object> responseMap = sendHttpPost(serverUrl, requestHeader, requestBody);
    // 5. 응답 후처리
    if (responseMap != null) {
    	Map<String, Object> responseHeader = responseMap.get("dataHeader");
        Map<String, Object> responseBody = responseMap.get("dataBody");
        accessToken = (String) responseBody.get("accessToken");
    }
    return accessToken;
}

참고

header Content-Type 과 MultiValueMap 의 관계

profile
자기 개발 기록 저장소

0개의 댓글