//환율 TEST
public MiDataSet testcost(MiObject mo) throws ServiceException{
DBTransaction tx = null;
MiDataSet mds = new MiDataSet();
Dataset ds = new Dataset("dataset");
try{
// HTTP 요청을 보내기 위한 RestTemplate 객체 생성
URL url = new URL("https://www.koreaexim.go.kr/site/program/financial/exchangeJSON?authkey=QNZEFMge45DVW9RJy8gX8bxYAUJv9juq&searchdate="+mo.getItemAsString("DATE")+"&data=AP01");
// URL 연결 객체 생성
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
// 요청 방식 설정
conn.setRequestMethod("GET");
// 응답 코드 확인
int responseCode = conn.getResponseCode();
if (responseCode == 200) { // 정상 응답일 경우
// 응답 데이터를 문자열로 변환
BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream()));
StringBuilder sb = new StringBuilder();
String line;
while ((line = br.readLine()) != null) {
sb.append(line);
}
br.close();
// 응답 데이터를 JSON 객체로 변환
JSONParser parser = new JSONParser();
try {
// JSON 문자열을 파싱하여 Object 타입으로 변환
Object obj = parser.parse(sb.toString());
// Object 타입을 JSONArray 타입으로 캐스팅
JSONArray jsonArray = (JSONArray) obj;
// 파싱 성공 메시지 출력
System.out.println("Parsing success!");
System.out.println(jsonArray.toString());
for (int i = 0; i < jsonArray.size(); i++) {
JSONObject jsonObject = (JSONObject) jsonArray.get(i);
String cur_nm = (String) jsonObject.get("cur_nm"); // 통화명
String cur_unit = (String) jsonObject.get("cur_unit"); // 통화코드
String kftc_deal_bas_r = (String) jsonObject.get("kftc_deal_bas_r"); // 환율
// 추출한 데이터를 화면에 출력하거나 다른 용도로 사용
System.out.println(cur_nm + " (" + cur_unit + ") : " + kftc_deal_bas_r);
ds.setColumn(i, "cur_nm", cur_nm);
System.out.println(ds.getColumnAsString(i, i));
}
} catch (ParseException e) {
throw new ServiceException(this, e.getMessage());
}
} else { // 오류 응답일 경우
// 오류 메시지 출력하거나 예외 처리
System.out.println("Response Code : " + responseCode);
}
}catch(Exception e){
throw new ServiceException(this, e.getMessage());
}finally{
mds.setDataset(ds);
}
return mds;
}