Notice
Recent Posts
Recent Comments
Link
투케이2K
54. (spring/스프링) RestTemplate 레스트 템플릿 사용해 http get , post query param (쿼리 파람) 요청 실시 본문
Spring
54. (spring/스프링) RestTemplate 레스트 템플릿 사용해 http get , post query param (쿼리 파람) 요청 실시
투케이2K 2022. 6. 29. 10:05[개발 환경 설정]
개발 툴 : inteli j
개발 언어 : spring
[소스 코드]
// TODO [SEARCH FAST] : [레스트 템플릿 테스트]
@GetMapping("/REST_TAMPLATE")
public String REST_TAMPLATE(@RequestParam Map<String, String> param){
System.out.println("\n");
System.out.println("================================================");
System.out.println("[CLASS] : "+String.valueOf(CLASS_NAME));
System.out.println("[METHOD] : "+String.valueOf("REST_TAMPLATE"));
System.out.println("[INPUT] : "+String.valueOf(param.toString()));
System.out.println("================================================");
System.out.println("\n");
/**
* // -----------------------------------------
* [호출 방법]
* // -----------------------------------------
* 1. 호출 방식 : GET
* // -----------------------------------------
* 2. 호출 방법 : http://localhost:7000/REST_TAMPLATE
* // -----------------------------------------
* 3. 리턴 데이터 : http 요청 리턴 데이터
* // -----------------------------------------
* 4. gradle 필요 implementation :
*
* // TODO [RestTemplete http 요청]
* implementation 'org.apache.httpcomponents:httpcore:4.4.15'
* implementation 'org.apache.httpcomponents:httpclient:4.5.13'
* // -----------------------------------------
* */
// [리턴 데이터 선언 실시]
HashMap<String, Object> resultMap = new HashMap<String, Object>();
// [https 요청 객체 선언]
HttpComponentsClientHttpRequestFactory factory = new HttpComponentsClientHttpRequestFactory();
factory.setConnectTimeout(20000); // 커넥션 타임 아웃 설정 20초
factory.setReadTimeout(20000); // 리드 타임 아웃 설정 20초
HttpClient httpClient = HttpClientBuilder.create()
.setMaxConnTotal(50)// 최대 커넥션 수
.setMaxConnPerRoute(20).build();
factory.setHttpClient(httpClient);
// [RestTemplate 객체 선언 실시]
RestTemplate restTemplate = new RestTemplate(factory);
// [http 헤더 설정]
HttpHeaders headers = new HttpHeaders();
HttpEntity<String> entity = new HttpEntity<>(headers);
// [http 요청 수행 주소 및 데이터 설정]
String url = "http://jsonplaceholder.typicode.com/posts";
UriComponents uriBuilder = UriComponentsBuilder.fromHttpUrl(url)
.queryParam("userId", 1)
.queryParam("id", 1)
.build(true);
// [맵에 설정 값 추가 : 로그]
resultMap.put("request", uriBuilder.toString());
try {
// [http 요청 실시 / GET , POST QueryString]
ResponseEntity<Object> response = restTemplate.exchange(uriBuilder.toString(), HttpMethod.GET, entity, Object.class);
//ResponseEntity<Object> response = restTemplate.exchange(uriBuilder.toString(), HttpMethod.POST, entity, Object.class);
// [http 요청 결과를 Map에 추가]
resultMap.put("responseStateCode", String.valueOf(response.getStatusCodeValue()));
resultMap.put("responseBody", String.valueOf(response.getBody()));
}
catch (Exception e) {
e.printStackTrace();
// [에러 발생 시 map 에 추가 : 로그]
resultMap.put("exception", String.valueOf(e.getMessage()));
}
// [로그 출력 실시]
System.out.println("\n");
System.out.println("================================================");
System.out.println("[CLASS] : "+String.valueOf(CLASS_NAME));
System.out.println("[METHOD] : "+String.valueOf("REST_TAMPLATE"));
System.out.println("[RETURN] : "+String.valueOf(resultMap.toString()));
System.out.println("================================================");
System.out.println("\n");
// [Api 리턴 반환]
return resultMap.toString();
}
[결과 출력]
반응형
'Spring' 카테고리의 다른 글
56. (spring/스프링) Slf4j 사용해 로그 (log) 출력 방법 설명 (0) | 2022.06.29 |
---|---|
55. (spring/스프링) RestTemplate 레스트 템플릿 사용해 http post body json 요청 실시 (0) | 2022.06.29 |
53. (spring/스프링) BufferedImage 사용해 http 이미지 주소 링크 사진 정보 data url 로 변경 실시 (0) | 2022.06.28 |
52. (spring/스프링) org json 라이브러리 사용해 JSONObject , JSONArray 사용 실시 (0) | 2022.06.28 |
51. (spring/스프링) commons codec 라이브러리 사용해 base64 인코딩 및 디코딩 수행 실시 (0) | 2022.06.28 |
Comments