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;
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();
}
public String getAccessToken() {
String accessToken = "";
String serverUrl = "http(s)://{host}:{port}/{path}";
HttpHeaders requestHeader = new HttpHeaders();
requestHeader.add("Content-Type", "application/x-www-form-urlencoded")
MultiValueMap<String, String> requestBody = new LinkedMultivalueMap<>();
requestBody.add("testData", "Y");
Map<String, Object> responseMap = sendHttpPost(serverUrl, requestHeader, requestBody);
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 의 관계