Study/JAVA & Spring
[JAVA] 공공 API접근해서 JSON 형식으로 내려받기.
I'm 영서
2022. 4. 16. 12:28
반응형
공공 API는 헌혈 API를 사용했다.
대한적십자사_헌혈의집_정보_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 형식으로 인코딩 하는걸 명시해주면 해결된다.
반응형