본문 바로가기

[JAVA] 공공 API접근해서 JSON 형식으로 내려받기.

I'm 영서 2022. 4. 16.
반응형

공공 API는 헌혈 API를 사용했다.

 

데이터 상세 | 공공데이터포털 (data.go.kr)

 

대한적십자사_헌혈의집_정보_20201231

대한적십자사 헌혈의 집 정보 제공(관할혈액원,헌혈의집명칭,주소지,전화번호등) 대한적십자사, 대한적십자사

www.data.go.kr

 

활용신청하면 바로 승인되며 신청 후 

마이페이지에 가면 승인된 것을 확인 할 수 있고

인증키를 받은것을 확인 할 수있다.

 

인증키를 인증키 설정을 통해 확인해가며 되는 인증키를 선택하면 된다...

API목록을 누르면 자동으로 입력된 테스트 값을 가지고 request / response 테스트 가능하다.

 

이제 테스트가 완료됐으면 데이터를 내려받아보자

String apiKey = "";
String uddi = ""
StringBuilder baseURL = new StringBuilder("https://api.odcloud.kr/api")
.append(uddi)
.append("?").append("page").append("=").append("0")
.append("&").append("perPage").append("=").append("0")
.append("&").append("serviceKey=").append(apiKey);

System.out.println(baseURL.toString());
URL url = new URL(baseURL.toString());

HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET");
conn.setRequestProperty("Conetnt-type", "application/json");

BufferedReader reader ;


if(conn.getResponseCode() >= 200 && conn.getResponseCode() <= 300){
    reader = new BufferedReader(new InputStreamReader(conn.getInputStream(),"UTF-8"));
}else{
    reader = new BufferedReader(new InputStreamReader(conn.getErrorStream(), "UTF-8"));
}
StringBuilder builder = new StringBuilder();
String line ;
while((line = reader.readLine()) != null){
    builder.append(line);
}
conn.disconnect();
System.out.println(builder.toString());

 

값을 제대로 입력하면 테스트 결과가 아주 잘 나온다

 

이때 한글 깨짐 현상이 발생할 수 도 있는데 , inputStreamReader를 생성할 때 UTF-8 형식으로 인코딩 하는걸 명시해주면 해결된다. 

 

테스트 결과.. json 형식으로 데이터를 내려받은걸 확인할 수 있다..

 

 

 

 

 

 

 

 

 

 

 

 

 

 

반응형

댓글