Notice
Recent Posts
Recent Comments
Link
투케이2K
57. (spring/스프링) HttpURLConnection 사용해 http get 쿼리 파람 요청 실시 본문
[개발 환경 설정]
개발 툴 : inteli j
개발 언어 : spring
[소스 코드]
// TODO [SEARCH FAST] : [HttpURLConnection 테스트]
@GetMapping("/HTTP_CONNECTION")
public String HTTP_CONNECTION(@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("HTTP_CONNECTION"));
System.out.println("[INPUT] : "+String.valueOf(param.toString()));
System.out.println("================================================");
System.out.println("\n");
/**
* // -----------------------------------------
* [호출 방법]
* // -----------------------------------------
* 1. 호출 방식 : GET
* // -----------------------------------------
* 2. 호출 방법 : http://localhost:7000/HTTP_CONNECTION
* // -----------------------------------------
* 3. 리턴 데이터 : http 요청 리턴 데이터
* // -----------------------------------------
* */
// [리턴 데이터 선언 실시]
HashMap<String, Object> resultMap = new HashMap<String, Object>();
// [URL 정보 설정 실시]
String urlData = "http://jsonplaceholder.typicode.com/posts";
// [쿼리 파람 데이터 정의 실시]
Map<String, Object> paramData = new HashMap<>();
paramData.put("userId", 1);
paramData.put("id", 1);
// [URL + 파라미터 결합 실시]
urlData += "?" + C_Util.mapToUrlEncodeQueryString(paramData);
// [리턴 데이터에 로그 삽입]
resultMap.put("request", urlData);
// [로직 처리 실시]
try {
// [http 설정]
URL url = new URL(urlData);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setReadTimeout(20000); // 리드 타임 아웃
conn.setConnectTimeout(20000); // 커넥션 타임 아웃
conn.setRequestMethod("GET"); // 전송 타입
conn.setDoInput(true); // IN 설정
conn.setDoOutput(true); // OUT 설정
conn.addRequestProperty("Content-type", "application/x-www-form-urlencoded"); // 프로퍼티 설정
// [http response 데이터 확인]
BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream(), "UTF-8"));
StringBuffer sb = new StringBuffer();
String responseData = "";
while ((responseData = br.readLine()) != null) {
sb.append(responseData); //StringBuffer 에 응답받은 데이터 순차적으로 저장 실시
}
try {
if (br != null) {
br.close();
}
} catch (IOException e) {
e.printStackTrace();
}
// [리턴 데이터에 삽입 실시]
resultMap.put("responseCode", conn.getResponseCode());
resultMap.put("responseBody", sb.toString());
}
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' 카테고리의 다른 글
Comments