우리은행 API 요청

bob_ssso·2021년 5월 6일
0

우리은행의 API를 사용해야 했다. 안드로이드에서는 내가 만든 JSP 서버로 OKHttp3 객체를 사용해서 requset를 날렸다. 하지만 이클립스에서 어떤곳에 requset를 요청한 경험이 없었고 테스트하던 포스트맨에서 제공한 예시들도 이클립스 상에서 오류가 났었다.

포스트맨에서는 자바 코드 예시로 Okhttp와 Unirest 를 사용한 샘플코드를 제공해줬지만 이클립스 웹프로젝트에서 전자는 사용할 수 없었고 후자 또한 사용하다가 오류가 나서 포기했다ㅠ

우리은행에서 제공한 코드로 결국 성공하긴 했는데 아래 부분의 스트링값이 우리은행이 제공해준 것에서 오류가 떠서 고생을 했다. 같은 json이긴 했지만 복붙을 하면서 스트링값에 \와 \n이 추가되면서 발생한 오류라고 생각한다.

byte body="스트링값".getBytes()'

위와 같은 json을 다음과 같이 string값으로 바꿔 해결하였다.

"{\n\"dataHeader\": {\n  \"UTZPE_CNCT_IPAD\": \"\",\n  \"UTZPE_CNCT_MCHR_UNQ_ID\": \"\",\n  \"UTZPE_CNCT_TEL_NO_TXT\": \"\",\n  \"UTZPE_CNCT_MCHR_IDF_SRNO\": \"\",\n  \"UTZ_MCHR_OS_DSCD\": \"\",\n  \"UTZ_MCHR_OS_VER_NM\": \"\",\n  \"UTZ_MCHR_MDL_NM\": \"\",\n  \"UTZ_MCHR_APP_VER_NM\": \"\"\n},\n\"dataBody\": {\n  \"ENCY_ACNM_NO\": \"PfaC0qTumwYDk8TloqA==\",\n  \"CUS_KORL_NM\": \"홍길동\",\n  \"RQ_AM\": 3000000\n}\n}\n"

코드👽

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;

public class ApiExplorer {
    public static void main(String[] args) throws IOException {
        StringBuilder urlBuilder = new StringBuilder("/oai/wb/v1/lease/getLeaseHouseLoanAm");
        URL url = new URL(urlBuilder.toString());
        HttpURLConnection conn = (HttpURLConnection) url.openConnection();
        conn.setRequestMethod("POST");
        
        conn.setRequestProperty("appkey", "");
        
        conn.setRequestProperty("authorization", "");
        
        byte[] body = "request_json값_String".getBytes();
        conn.setFixedLengthStreamingMode(body.length);
        conn.setDoOutput(true);

        OutputStream out = conn.getOutputStream();
        out.write(body);
        BufferedReader rd;
        if(conn.getResponseCode() >= 200 && conn.getResponseCode() <= 300) {
            rd = new BufferedReader(new InputStreamReader(conn.getInputStream()));
        } else {
            rd = new BufferedReader(new InputStreamReader(conn.getErrorStream()));
        }
        StringBuilder sb = new StringBuilder();
        String line;
        while ((line = rd.readLine()) != null) {
            sb.append(line);
        }
        rd.close();
        conn.disconnect();
        //System.out.println(sb.toString());
    }
}

참고

우리은행 api 링크: https://developer.wooribank.com/testbed-console#!/List32of32APIs/oai_wb_v1_lease_getLeaseHouseLoanAm

profile
밥소🐈

0개의 댓글