[API] 환율 API test

2023. 11. 2. 12:38·개발 관련
//환율 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;
}

'개발 관련' 카테고리의 다른 글

[WEB] 그래서 서블릿 너가 뭔데?  (0) 2024.10.07
[회고록]레거시 프로그램에 발목잡히다...(서블릿 나빠)  (0) 2024.10.07
소프트웨어 아키텍처 패턴: MVC, MVVM,MVP  (0) 2024.08.30
클린 아키텍처와 디자인 패턴: 견고한 소프트웨어 설계의 기초  (1) 2024.08.30
[Spring] 스프링에 대해  (0) 2023.11.03
'개발 관련' 카테고리의 다른 글
  • [회고록]레거시 프로그램에 발목잡히다...(서블릿 나빠)
  • 소프트웨어 아키텍처 패턴: MVC, MVVM,MVP
  • 클린 아키텍처와 디자인 패턴: 견고한 소프트웨어 설계의 기초
  • [Spring] 스프링에 대해
뚤떡이
뚤떡이
프로그래밍을 알아가며 저와 함께 성장하는 블로그 입니다
  • 뚤떡이
    뚤떡이의 발개벗긴개발
    뚤떡이
  • 전체
    오늘
    어제
    • 분류 전체보기 (73)
      • Docker (2)
      • 자바 (29)
        • start (10)
        • calcu (4)
        • process (7)
      • 플러터 (1)
      • 알고리즘 (12)
        • 개념 (2)
        • 구현 (5)
        • 백준 (0)
        • 프로그래머스 (5)
      • 이클립스 (4)
        • 초기설정 (4)
      • SQL (5)
      • IT 잡동사니 (10)
      • 개발 관련 (10)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    IT자산관리
    크롬 원격 데스크톱
    개발일지 #프로젝트후기 #gpt4 #번역 #자동화 #python #electron
    #개발일지
    윈도우 크롬 원격
    #프로젝트
    MAC 크롬 원격
    #electron
    synology
    스팸메일 #메일보안 #gophish #it보안 #오픈소스
    #python
    요구사항 정의서
    크롬 원격
    #apachesuperset #시놀로지 #db2 #데이터시각화 #기술블로그
    #자동화
    #번역
    시놀로지
    #python #개발일지 #번역 #메모리최적화 #websocket #redis #비동기프로그래밍
    GLPI
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
뚤떡이
[API] 환율 API test
상단으로

티스토리툴바