본문 바로가기
Java

공공데이터포탈 사용해보기

by 개발자공부 2024. 6. 4.

https://www.data.go.kr/

 

공공데이터 포털

국가에서 보유하고 있는 다양한 데이터를『공공데이터의 제공 및 이용 활성화에 관한 법률(제11956호)』에 따라 개방하여 국민들이 보다 쉽고 용이하게 공유•활용할 수 있도록 공공데이터(Datase

www.data.go.kr

 

순서

1. 회원가입 및 로그인

2. 데이터 찾기 > 데이터 목록 > 오픈API

3. 원하는 문서를 선택해서 활용신청한다.

4. 미리보기를 통해 코드를 확인할 수 있다.

5. 마이페이지에서 API 신청이 완료되었는지 확인하고 원하는 샘플 코드를 선택한다.

데이터찾기 > 데이터목록 > 오픈API
활용신청(사유는 간단하게 적어도 된다.)
미리보기를 통해 코드 확인 가능
returnType=xml (returnType가 xml 형식이다)
xml 형식 코드 미리보기

 

returnType=json으로 고쳤을때
json 형식 코드 미리보기
원하는 샘플코드 선택

package ch01;

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

public class APIExplorer {

	public static void main(String[] args) throws IOException {

		// 순수 자바코드로 (클라이언트 측 코딩)
		// 준비물
		// 1. 서버측 주소 - 경로
		// http://localhost:8080/test?name=홍길동&age=20
		// http://localhost:8080/test?name=%ED%99%8D%EA%B8%B8%EB%8F%99&age=20
		StringBuilder urlBuilder = new StringBuilder(
				"http://apis.data.go.kr/B552584/UlfptcaAlarmInqireSvc/getUlfptcaAlarmInfo");
		urlBuilder.append("?" + URLEncoder.encode("serviceKey", "UTF-8")
				+ "=WgX%2BCwI5hUgsT8ZfOiM5ekr2ywuOBgOArK1kBNwFf9sV%2BKHU9z4H41HvUFr0QZ2b1MRSE7SCfShQDIcp6YvlVg%3D%3D"); /*
																														*/
		urlBuilder.append("&" + URLEncoder.encode("returnType", "UTF-8") + "="
				+ URLEncoder.encode("json", "UTF-8")); /* xml 또는 json */
		urlBuilder.append("&" + URLEncoder.encode("numOfRows", "UTF-8") + "="
				+ URLEncoder.encode("100", "UTF-8")); /* 한 페이지 결과 수 */
		urlBuilder
				.append("&" + URLEncoder.encode("pageNo", "UTF-8") + "=" + URLEncoder.encode("1", "UTF-8")); /* 페이지번호 */
		urlBuilder.append(
				"&" + URLEncoder.encode("year", "UTF-8") + "=" + URLEncoder.encode("2024", "UTF-8")); /* 측정 연도 */
		urlBuilder.append("&" + URLEncoder.encode("itemCode", "UTF-8") + "="
				+ URLEncoder.encode("PM10", "UTF-8")); /* 미세먼지 항목 구분(PM10, PM25), PM10/PM25 모두 조회할 경우 파라미터 생략 */

		// URL 객체에서 문자열 경로 넣어서 객체 생성
		// url.openConnection() 데이터 요청 보내기 - 설정하고
		URL url = new URL(urlBuilder.toString());

		HttpURLConnection conn = (HttpURLConnection) url.openConnection();

		conn.setRequestMethod("GET"); // 서버에게 자원 요청
		conn.setRequestProperty("Content-type", "application/json");
		// 성공하면 보통 200, 실패 404,405
		System.out.println("Response code: " + conn.getResponseCode());

		// 100번대부터 500번대까지 의미가 있다 = 약속
		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());

	} // end of main

} // end of class


실행결과

올바르게 입력되었다는 Response : 200과 함께 데이터를 입력한 형태(현재는 json)로 가져온 것을 확인할 수 있다.

Response code: 200
{"response":{"body":{"totalCount":282,"items":[{"clearVal":"81","sn":"343","districtName":"전남","dataDate":"2024-05-12","issueVal":"202","issueTime":"11:00","clearDate":"2024-05-12","issueDate":"2024-05-12","moveName":"중부권","clearTime":"16:00","issueGbn":"주의보","itemCode":"PM10"},{"clearVal":"98","sn":"355","districtName":"충남","dataDate":"2024-05-12","issueVal":"179","issueTime":"12:00","clearDate":"2024-05-12","issueDate":"2024-05-12","moveName":"북부권역","clearTime":"18:00","issueGbn":"주의보","itemCode":"PM10"},{"clearVal":"313","sn":"338","districtName":"대구","dataDate":"2024-05-12","issueVal":"263","issueTime":"10:00","clearDate":"2024-05-12","issueDate":"2024-05-12","moveName":"군위권역","clearTime":"12:00","issueGbn":"주의보","itemCode":"PM10"},{"clearVal":"93","sn":"352","districtName":"경남","dataDate":"2024-05-12","issueVal":"197","issueTime":"12:00","clearDate":"2024-05-12","issueDate":"2024-05-12","moveName":"밀양권역","clearTime":"17:00","issueGbn":"주의보","itemCode":"PM10"},{"clearVal":"97","sn":"346","districtName":"제주","dataDate":"2024-05-12","issueVal":"187","issueTime":"12:00","clearDate":"2024-05-12","issueDate":"2024-05-12","moveName":"제주권역","clearTime":"19:00","issueGbn":"주의보","itemCode":"PM10"},{"clearVal":"95","sn":"358","districtName":"경북","dataDate":"2024-05-12","issueVal":"169","issueTime":"13:00","clearDate":"2024-05-12","issueDate":"2024-05-12","moveName":"동부권역","clearTime":"19:00","issueGbn":"주의보","itemCode":"PM10"},{"clearVal":"98","sn":"341","districtName":"경남","dataDate":"2024-05-12","issueVal":"181","issueTime":"11:00","clearDate":"2024-05-12","issueDate":"2024-05-12","moveName":"창녕권역","clearTime":"17:00","issueGbn":"주의보","itemCode":"PM10"},{"clearVal":"90","sn":"360","districtName":"경남","dataDate":"2024-05-12","issueVal":"185","issueTime":"12:00","clearDate":"2024-05-12","issueDate":"2024-05-12","moveName":"함안권역","clearTime":"19:00","issueGbn":"주의보","itemCode":"PM10"},{"clearVal":"96","sn":"356","districtName":"대전","dataDate":"2024-05-12","issueVal":"197","issueTime":"12:00","clearDate":"2024-05-12","issueDate":"2024-05-12","moveName":"서부권역","clearTime":"15:00","issueGbn":"주의보","itemCode":"PM10"},{"clearVal":"89","sn":"335","districtName":"광주","dataDate":"2024-05-12","issueVal":"187","issueTime":"10:00","clearDate":"2024-05-12","issueDate":"2024-05-12","moveName":"광주권역","clearTime":"15:00","issueGbn":"주의보","itemCode":"PM10"},{"clearVal":"95","sn":"347","districtName":"강원","dataDate":"2024-05-12","issueVal":"173","issueTime":"12:00","clearDate":"2024-05-12","issueDate":"2024-05-12","moveName":"영서남부","clearTime":"14:00","issueGbn":"주의보","itemCode":"PM10"},{"clearVal":"95","sn":"336","districtName":"전북","dataDate":"2024-05-12","issueVal":"241","issueTime":"10:00","clearDate":"2024-05-12","issueDate":"2024-05-12","moveName":"동부권역","clearTime":"17:00","issueGbn":"주의보","itemCode":"PM10"},{"clearVal":"95","sn":"345","districtName":"전북","dataDate":"2024-05-12","issueVal":"186","issueTime":"11:00","clearDate":"2024-05-12","issueDate":"2024-05-12","moveName":"서부권역","clearTime":"18:00","issueGbn":"주의보","itemCode":"PM10"},{"clearVal":"99","sn":"361","districtName":"경남","dataDate":"2024-05-12","issueVal":"175","issueTime":"14:00","clearDate":"2024-05-12","issueDate":"2024-05-12","moveName":"합천권역","clearTime":"17:00","issueGbn":"주의보","itemCode":"PM10"},{"clearVal":"90","sn":"340","districtName":"강원","dataDate":"2024-05-12","issueVal":"176","issueTime":"11:00","clearDate":"2024-05-12","issueDate":"2024-05-12","moveName":"영동남부","clearTime":"15:00","issueGbn":"주의보","itemCode":"PM10"},{"clearVal":"99","sn":"357","districtName":"대구","dataDate":"2024-05-12","issueVal":"313","issueTime":"12:00","clearDate":"2024-05-12","issueDate":"2024-05-12","moveName":"군위권역","clearTime":"16:00","issueGbn":"경보","itemCode":"PM10"},{"clearVal":"85","sn":"363","districtName":"경남","dataDate":"2024-05-12","issueVal":"222","issueTime":"10:00","clearDate":"2024-05-12","issueDate":"2024-05-12","moveName":"함양권역","clearTime":"19:00","issueGbn":"주의보","itemCode":"PM10"},{"clearVal":"91","sn":"353","districtName":"세종","dataDate":"2024-05-12","issueVal":"190","issueTime":"12:00","clearDate":"2024-05-12","issueDate":"2024-05-12","moveName":"세종권역","clearTime":"15:00","issueGbn":"주의보","itemCode":"PM10"},{"clearVal":"84","sn":"349","districtName":"인천","dataDate":"2024-05-12","issueVal":"151","issueTime":"12:00","clearDate":"2024-05-12","issueDate":"2024-05-12","moveName":"영종·영흥권역","clearTime":"16:00","issueGbn":"주의보","itemCode":"PM10"},{"clearVal":"95","sn":"339","districtName":"전남","dataDate":"2024-05-12","issueVal":"222","issueTime":"10:00","clearDate":"2024-05-12","issueDate":"2024-05-12","moveName":"서부권","clearTime":"17:00","issueGbn":"주의보","itemCode":"PM10"},{"clearVal":"85","sn":"362","districtName":"경남","dataDate":"2024-05-12","issueVal":"163","issueTime":"16:00","clearDate":"2024-05-12","issueDate":"2024-05-12","moveName":"창원권역","clearTime":"20:00","issueGbn":"주의보","itemCode":"PM10"},{"clearVal":"98","sn":"332","districtName":"강원","dataDate":"2024-05-12","issueVal":"248","issueTime":"06:00","clearDate":"2024-05-12","issueDate":"2024-05-12","moveName":"영동북부","clearTime":"12:00","issueGbn":"주의보","itemCode":"PM10"},{"clearVal":"88","sn":"337","districtName":"대구","dataDate":"2024-05-12","issueVal":"248","issueTime":"10:00","clearDate":"2024-05-12","issueDate":"2024-05-12","moveName":"대구권역","clearTime":"17:00","issueGbn":"주의보","itemCode":"PM10"},{"clearVal":"96","sn":"350","districtName":"충북","dataDate":"2024-05-12","issueVal":"204","issueTime":"12:00","clearDate":"2024-05-12","issueDate":"2024-05-12","moveName":"중부권역","clearTime":"15:00","issueGbn":"주의보","itemCode":"PM10"},{"clearVal":"92","sn":"351","districtName":"충북","dataDate":"2024-05-12","issueVal":"258","issueTime":"12:00","clearDate":"2024-05-12","issueDate":"2024-05-12","moveName":"남부권역","clearTime":"17:00","issueGbn":"주의보","itemCode":"PM10"},{"clearVal":"61","sn":"359","districtName":"경북","dataDate":"2024-05-12","issueVal":"182","issueTime":"14:00","clearDate":"2024-05-12","issueDate":"2024-05-12","moveName":"울릉권역","clearTime":"17:00","issueGbn":"주의보","itemCode":"PM10"},{"clearVal":"89","sn":"348","districtName":"충북","dataDate":"2024-05-12","issueVal":"200","issueTime":"12:00","clearDate":"2024-05-12","issueDate":"2024-05-12","moveName":"북부권역","clearTime":"15:00","issueGbn":"주의보","itemCode":"PM10"},{"clearVal":"92","sn":"342","districtName":"충남","dataDate":"2024-05-12","issueVal":"201","issueTime":"11:00","clearDate":"2024-05-12","issueDate":"2024-05-12","moveName":"동남부권역","clearTime":"15:00","issueGbn":"주의보","itemCode":"PM10"},{"clearVal":"83","sn":"354","districtName":"대전","dataDate":"2024-05-12","issueVal":"206","issueTime":"12:00","clearDate":"2024-05-12","issueDate":"2024-05-12","moveName":"동부권역","clearTime":"16:00","issueGbn":"주의보","itemCode":"PM10"},{"clearVal":"99","sn":"334","districtName":"경북","dataDate":"2024-05-12","issueVal":"196","issueTime":"09:00","clearDate":"2024-05-12","issueDate":"2024-05-12","moveName":"서부권역","clearTime":"17:00","issueGbn":"주의보","itemCode":"PM10"},{"clearVal":"82","sn":"344","districtName":"전북","dataDate":"2024-05-12","issueVal":"250","issueTime":"11:00","clearDate":"2024-05-12","issueDate":"2024-05-12","moveName":"중부권역","clearTime":"16:00","issueGbn":"주의보","itemCode":"PM10"},{"clearVal":"93","sn":"333","districtName":"경남","dataDate":"2024-05-12","issueVal":"190","issueTime":"09:00","clearDate":"2024-05-12","issueDate":"2024-05-12","moveName":"거창권역","clearTime":"16:00","issueGbn":"주의보","itemCode":"PM10"},{"clearVal":"97","sn":"330","districtName":"경북","dataDate":"2024-04-20","issueVal":"165","issueTime":"06:00","clearDate":"2024-04-21","issueDate":"2024-04-20","moveName":"울릉권역","clearTime":"01:00","issueGbn":"주의보","itemCode":"PM10"},{"clearVal":"95","sn":"321","districtName":"경남","dataDate":"2024-04-19","issueVal":"136","issueTime":"14:00","clearDate":"2024-04-20","issueDate":"2024-04-19","moveName":"양산권역","clearTime":"02:00","issueGbn":"주의보","itemCode":"PM10"},{"clearVal":"86","sn":"315","districtName":"경북","dataDate":"2024-04-19","issueVal":"140","issueTime":"10:00","clearDate":"2024-04-19","issueDate":"2024-04-19","moveName":"동부권역","clearTime":"12:00","issueGbn":"주의보","itemCode":"PM10"},{"clearVal":"94","sn":"316","districtName":"경남","dataDate":"2024-04-19","issueVal":"137","issueTime":"12:00","clearDate":"2024-04-20","issueDate":"2024-04-19","moveName":"김해권역","clearTime":"00:00","issueGbn":"주의보","itemCode":"PM10"},{"clearVal":"96","sn":"326","districtName":"부산","dataDate":"2024-04-19","issueVal":"148","issueTime":"20:00","clearDate":"2024-04-20","issueDate":"2024-04-19","moveName":"남부권역","clearTime":"05:00","issueGbn":"주의보","itemCode":"PM10"},{"clearVal":"95","sn":"320","districtName":"부산","dataDate":"2024-04-19","issueVal":"146","issueTime":"13:00","clearDate":"2024-04-20","issueDate":"2024-04-19","moveName":"동부권역","clearTime":"01:00","issueGbn":"주의보","itemCode":"PM10"},{"clearVal":"97","sn":"319","districtName":"경남","dataDate":"2024-04-19","issueVal":"137","issueTime":"13:00","clearDate":"2024-04-19","issueDate":"2024-04-19","moveName":"고성권역","clearTime":"22:00","issueGbn":"주의보","itemCode":"PM10"},{"clearVal":"77","sn":"329","districtName":"경북","dataDate":"2024-04-19","issueVal":"148","issueTime":"15:00","clearDate":"2024-04-19","issueDate":"2024-04-19","moveName":"울릉권역","clearTime":"22:00","issueGbn":"주의보","itemCode":"PM10"},{"clearVal":"98","sn":"327","districtName":"부산","dataDate":"2024-04-19","issueVal":"144","issueTime":"21:00","clearDate":"2024-04-20","issueDate":"2024-04-19","moveName":"서부권역","clearTime":"05:00","issueGbn":"주의보","itemCode":"PM10"},{"clearVal":"94","sn":"325","districtName":"경남","dataDate":"2024-04-19","issueVal":"144","issueTime":"18:00","clearDate":"2024-04-20","issueDate":"2024-04-19","moveName":"통영권역","clearTime":"04:00","issueGbn":"주의보","itemCode":"PM10"},{"clearVal":"93","sn":"314","districtName":"강원","dataDate":"2024-04-19","issueVal":"129","issueTime":"01:00","clearDate":"2024-04-19","issueDate":"2024-04-19","moveName":"영동남부","clearTime":"03:00","issueGbn":"주의보","itemCode":"PM10"},{"clearVal":"97","sn":"318","districtName":"경남","dataDate":"2024-04-19","issueVal":"141","issueTime":"13:00","clearDate":"2024-04-19","issueDate":"2024-04-19","moveName":"창원권역","clearTime":"22:00","issueGbn":"주의보","itemCode":"PM10"},{"clearVal":"94","sn":"323","districtName":"강원","dataDate":"2024-04-19","issueVal":"184","issueTime":"15:00","clearDate":"2024-04-19","issueDate":"2024-04-19","moveName":"영동북부","clearTime":"22:00","issueGbn":"주의보","itemCode":"PM10"},{"clearVal":"97","sn":"317","districtName":"울산","dataDate":"2024-04-19","issueVal":"148","issueTime":"12:00","clearDate":"2024-04-20","issueDate":"2024-04-19","moveName":"울산권역","clearTime":"15:00","issueGbn":"주의보","itemCode":"PM10"},{"clearVal":"80","sn":"324","districtName":"경남","dataDate":"2024-04-19","issueVal":"134","issueTime":"17:00","clearDate":"2024-04-19","issueDate":"2024-04-19","moveName":"거제권역","clearTime":"21:00","issueGbn":"주의보","itemCode":"PM10"},{"clearVal":"97","sn":"322","districtName":"부산","dataDate":"2024-04-19","issueVal":"129","issueTime":"14:00","clearDate":"2024-04-20","issueDate":"2024-04-19","moveName":"중부권역","clearTime":"03:00","issueGbn":"주의보","itemCode":"PM10"},{"clearVal":"137","sn":"304","districtName":"경남","dataDate":"2024-04-18","issueVal":"315","issueTime":"19:00","clearDate":"2024-04-19","issueDate":"2024-04-18","moveName":"김해권역","clearTime":"12:00","issueGbn":"경보","itemCode":"PM10"},{"clearVal":"82","sn":"313","districtName":"강원","dataDate":"2024-04-18","issueVal":"126","issueTime":"00:00","clearDate":"2024-04-19","issueDate":"2024-04-19","moveName":"영동북부","clearTime":"02:00","issueGbn":"주의보","itemCode":"PM10"},{"clearVal":"141","sn":"303","districtName":"경남","dataDate":"2024-04-18","issueVal":"311","issueTime":"19:00","clearDate":"2024-04-19","issueDate":"2024-04-18","moveName":"창원권역","clearTime":"13:00","issueGbn":"경보","itemCode":"PM10"},{"clearVal":"339","sn":"280","districtName":"경남","dataDate":"2024-04-18","issueVal":"159","issueTime":"10:00","clearDate":"2024-04-18","issueDate":"2024-04-18","moveName":"고성권역","clearTime":"19:00","issueGbn":"주의보","itemCode":"PM10"},{"clearVal":"96","sn":"281","districtName":"인천","dataDate":"2024-04-18","issueVal":"167","issueTime":"11:00","clearDate":"2024-04-18","issueDate":"2024-04-18","moveName":"영종·영흥권역","clearTime":"15:00","issueGbn":"주의보","itemCode":"PM10"},{"clearVal":"93","sn":"285","districtName":"전북","dataDate":"2024-04-18","issueVal":"189","issueTime":"11:00","clearDate":"2024-04-18","issueDate":"2024-04-18","moveName":"중부권역","clearTime":"21:00","issueGbn":"주의보","itemCode":"PM10"},{"clearVal":"95","sn":"294","districtName":"경남","dataDate":"2024-04-18","issueVal":"155","issueTime":"14:00","clearDate":"2024-04-19","issueDate":"2024-04-18","moveName":"하동권역","clearTime":"08:00","issueGbn":"주의보","itemCode":"PM10"},{"clearVal":"90","sn":"290","districtName":"경남","dataDate":"2024-04-18","issueVal":"188","issueTime":"12:00","clearDate":"2024-04-19","issueDate":"2024-04-18","moveName":"의령권역","clearTime":"15:00","issueGbn":"주의보","itemCode":"PM10"},{"clearVal":"66","sn":"312","districtName":"대구","dataDate":"2024-04-18","issueVal":"230","issueTime":"22:00","clearDate":"2024-04-19","issueDate":"2024-04-18","moveName":"군위권역","clearTime":"11:00","issueGbn":"주의보","itemCode":"PM10"},{"clearVal":"98","sn":"291","districtName":"경남","dataDate":"2024-04-18","issueVal":"165","issueTime":"13:00","clearDate":"2024-04-19","issueDate":"2024-04-18","moveName":"진주권역","clearTime":"23:00","issueGbn":"주의보","itemCode":"PM10"},{"clearVal":"93","sn":"307","districtName":"경남","dataDate":"2024-04-18","issueVal":"300","issueTime":"20:00","clearDate":"2024-04-19","issueDate":"2024-04-18","moveName":"함안권역","clearTime":"13:00","issueGbn":"경보","itemCode":"PM10"},{"clearVal":"137","sn":"305","districtName":"경남","dataDate":"2024-04-18","issueVal":"339","issueTime":"19:00","clearDate":"2024-04-19","issueDate":"2024-04-18","moveName":"고성권역","clearTime":"13:00","issueGbn":"경보","itemCode":"PM10"},{"clearVal":"136","sn":"299","districtName":"경남","dataDate":"2024-04-18","issueVal":"318","issueTime":"17:00","clearDate":"2024-04-19","issueDate":"2024-04-18","moveName":"양산권역","clearTime":"14:00","issueGbn":"경보","itemCode":"PM10"},{"clearVal":"92","sn":"284","districtName":"경남","dataDate":"2024-04-18","issueVal":"165","issueTime":"11:00","clearDate":"2024-04-18","issueDate":"2024-04-18","moveName":"거창권역","clearTime":"18:00","issueGbn":"주의보","itemCode":"PM10"},{"clearVal":"82","sn":"292","districtName":"경남","dataDate":"2024-04-18","issueVal":"176","issueTime":"13:00","clearDate":"2024-04-19","issueDate":"2024-04-18","moveName":"남해권역","clearTime":"14:00","issueGbn":"주의보","itemCode":"PM10"},{"clearVal":"89","sn":"311","districtName":"대구","dataDate":"2024-04-18","issueVal":"254","issueTime":"21:00","clearDate":"2024-04-19","issueDate":"2024-04-18","moveName":"대구권역","clearTime":"12:00","issueGbn":"주의보","itemCode":"PM10"},{"clearVal":"144","sn":"301","districtName":"경남","dataDate":"2024-04-18","issueVal":"306","issueTime":"18:00","clearDate":"2024-04-19","issueDate":"2024-04-18","moveName":"통영권역","clearTime":"18:00","issueGbn":"경보","itemCode":"PM10"},{"clearVal":"94","sn":"310","districtName":"경남","dataDate":"2024-04-18","issueVal":"268","issueTime":"21:00","clearDate":"2024-04-19","issueDate":"2024-04-18","moveName":"창녕권역","clearTime":"13:00","issueGbn":"주의보","itemCode":"PM10"},{"clearVal":"99","sn":"288","districtName":"경남","dataDate":"2024-04-18","issueVal":"162","issueTime":"12:00","clearDate":"2024-04-19","issueDate":"2024-04-18","moveName":"사천권역","clearTime":"18:00","issueGbn":"주의보","itemCode":"PM10"},{"clearVal":"93","sn":"287","districtName":"경기","dataDate":"2024-04-18","issueVal":"156","issueTime":"12:00","clearDate":"2024-04-18","issueDate":"2024-04-18","moveName":"북부권","clearTime":"16:00","issueGbn":"주의보","itemCode":"PM10"},{"clearVal":"83","sn":"282","districtName":"인천","dataDate":"2024-04-18","issueVal":"162","issueTime":"11:00","clearDate":"2024-04-18","issueDate":"2024-04-18","moveName":"서부권역","clearTime":"17:00","issueGbn":"주의보","itemCode":"PM10"},{"clearVal":"96","sn":"286","districtName":"인천","dataDate":"2024-04-18","issueVal":"162","issueTime":"12:00","clearDate":"2024-04-18","issueDate":"2024-04-18","moveName":"동남부권역","clearTime":"16:00","issueGbn":"주의보","itemCode":"PM10"},{"clearVal":"134","sn":"298","districtName":"경남","dataDate":"2024-04-18","issueVal":"340","issueTime":"17:00","clearDate":"2024-04-19","issueDate":"2024-04-18","moveName":"거제권역","clearTime":"17:00","issueGbn":"경보","itemCode":"PM10"},{"clearVal":"300","sn":"283","districtName":"경남","dataDate":"2024-04-18","issueVal":"174","issueTime":"11:00","clearDate":"2024-04-18","issueDate":"2024-04-18","moveName":"함안권역","clearTime":"20:00","issueGbn":"주의보","itemCode":"PM10"},{"clearVal":"99","sn":"293","districtName":"전남","dataDate":"2024-04-18","issueVal":"162","issueTime":"13:00","clearDate":"2024-04-19","issueDate":"2024-04-18","moveName":"동부권","clearTime":"08:00","issueGbn":"주의보","itemCode":"PM10"},{"clearVal":"88","sn":"289","districtName":"경남","dataDate":"2024-04-18","issueVal":"217","issueTime":"12:00","clearDate":"2024-04-19","issueDate":"2024-04-18","moveName":"합천권역","clearTime":"13:00","issueGbn":"주의보","itemCode":"PM10"},{"clearVal":"95","sn":"232","districtName":"경남","dataDate":"2024-04-17","issueVal":"214","issueTime":"11:00","clearDate":"2024-04-18","issueDate":"2024-04-17","moveName":"거창권역","clearTime":"03:00","issueGbn":"주의보","itemCode":"PM10"},{"clearVal":"94","sn":"230","districtName":"경남","dataDate":"2024-04-17","issueVal":"263","issueTime":"11:00","clearDate":"2024-04-18","issueDate":"2024-04-17","moveName":"고성권역","clearTime":"07:00","issueGbn":"주의보","itemCode":"PM10"},{"clearVal":"146","sn":"271","districtName":"부산","dataDate":"2024-04-17","issueVal":"362","issueTime":"15:00","clearDate":"2024-04-19","issueDate":"2024-04-17","moveName":"동부권역","clearTime":"13:00","issueGbn":"경보","itemCode":"PM10"},{"clearVal":"96","sn":"265","districtName":"충남","dataDate":"2024-04-17","issueVal":"232","issueTime":"14:00","clearDate":"2024-04-18","issueDate":"2024-04-17","moveName":"동남부권역","clearTime":"21:00","issueGbn":"주의보","itemCode":"PM10"},{"clearVal":"362","sn":"224","districtName":"부산","dataDate":"2024-04-17","issueVal":"228","issueTime":"10:00","clearDate":"2024-04-17","issueDate":"2024-04-17","moveName":"동부권역","clearTime":"15:00","issueGbn":"주의보","itemCode":"PM10"},{"clearVal":"94","sn":"273","districtName":"세종","dataDate":"2024-04-17","issueVal":"209","issueTime":"15:00","clearDate":"2024-04-18","issueDate":"2024-04-17","moveName":"세종권역","clearTime":"20:00","issueGbn":"주의보","itemCode":"PM10"},{"clearVal":"129","sn":"276","districtName":"부산","dataDate":"2024-04-17","issueVal":"327","issueTime":"16:00","clearDate":"2024-04-19","issueDate":"2024-04-17","moveName":"중부권역","clearTime":"14:00","issueGbn":"경보","itemCode":"PM10"},{"clearVal":"76","sn":"246","districtName":"경남","dataDate":"2024-04-17","issueVal":"167","issueTime":"12:00","clearDate":"2024-04-18","issueDate":"2024-04-17","moveName":"창녕권역","clearTime":"18:00","issueGbn":"주의보","itemCode":"PM10"},{"clearVal":"96","sn":"251","districtName":"전남","dataDate":"2024-04-17","issueVal":"231","issueTime":"12:00","clearDate":"2024-04-18","issueDate":"2024-04-17","moveName":"동부권","clearTime":"03:00","issueGbn":"주의보","itemCode":"PM10"},{"clearVal":"148","sn":"277","districtName":"부산","dataDate":"2024-04-17","issueVal":"306","issueTime":"16:00","clearDate":"2024-04-19","issueDate":"2024-04-17","moveName":"남부권역","clearTime":"20:00","issueGbn":"경보","itemCode":"PM10"},{"clearVal":"96","sn":"235","districtName":"전북","dataDate":"2024-04-17","issueVal":"220","issueTime":"11:00","clearDate":"2024-04-19","issueDate":"2024-04-17","moveName":"동부권역","clearTime":"01:00","issueGbn":"주의보","itemCode":"PM10"},{"clearVal":"140","sn":"260","districtName":"경북","dataDate":"2024-04-17","issueVal":"333","issueTime":"14:00","clearDate":"2024-04-19","issueDate":"2024-04-17","moveName":"동부권역","clearTime":"10:00","issueGbn":"경보","itemCode":"PM10"},{"clearVal":"91","sn":"266","districtName":"대전","dataDate":"2024-04-17","issueVal":"218","issueTime":"14:00","clearDate":"2024-04-18","issueDate":"2024-04-17","moveName":"동부권역","clearTime":"22:00","issueGbn":"주의보","itemCode":"PM10"},{"clearVal":"69","sn":"229","districtName":"경남","dataDate":"2024-04-17","issueVal":"184","issueTime":"11:00","clearDate":"2024-04-19","issueDate":"2024-04-17","moveName":"밀양권역","clearTime":"15:00","issueGbn":"주의보","itemCode":"PM10"},{"clearVal":"89","sn":"242","districtName":"경남","dataDate":"2024-04-17","issueVal":"240","issueTime":"12:00","clearDate":"2024-04-17","issueDate":"2024-04-17","moveName":"남해권역","clearTime":"21:00","issueGbn":"주의보","itemCode":"PM10"},{"clearVal":"98","sn":"257","districtName":"전북","dataDate":"2024-04-17","issueVal":"153","issueTime":"13:00","clearDate":"2024-04-18","issueDate":"2024-04-17","moveName":"서부권역","clearTime":"20:00","issueGbn":"주의보","itemCode":"PM10"},{"clearVal":"327","sn":"248","districtName":"부산","dataDate":"2024-04-17","issueVal":"202","issueTime":"12:00","clearDate":"2024-04-17","issueDate":"2024-04-17","moveName":"중부권역","clearTime":"16:00","issueGbn":"주의보","itemCode":"PM10"},{"clearVal":"99","sn":"240","districtName":"경남","dataDate":"2024-04-17","issueVal":"241","issueTime":"12:00","clearDate":"2024-04-18","issueDate":"2024-04-17","moveName":"하동권역","clearTime":"00:00","issueGbn":"주의보","itemCode":"PM10"},{"clearVal":"358","sn":"222","districtName":"울산","dataDate":"2024-04-17","issueVal":"177","issueTime":"08:00","clearDate":"2024-04-17","issueDate":"2024-04-17","moveName":"울산권역","clearTime":"13:00","issueGbn":"주의보","itemCode":"PM10"},{"clearVal":"97","sn":"249","districtName":"전남","dataDate":"2024-04-17","issueVal":"185","issueTime":"12:00","clearDate":"2024-04-18","issueDate":"2024-04-17","moveName":"서부권","clearTime":"21:00","issueGbn":"주의보","itemCode":"PM10"},{"clearVal":"129","sn":"237","districtName":"강원","dataDate":"2024-04-17","issueVal":"321","issueTime":"12:00","clearDate":"2024-04-19","issueDate":"2024-04-17","moveName":"영동남부","clearTime":"01:00","issueGbn":"경보","itemCode":"PM10"},{"clearVal":"96","sn":"267","districtName":"대전","dataDate":"2024-04-17","issueVal":"245","issueTime":"14:00","clearDate":"2024-04-18","issueDate":"2024-04-17","moveName":"서부권역","clearTime":"22:00","issueGbn":"주의보","itemCode":"PM10"},{"clearVal":"94","sn":"275","districtName":"충남","dataDate":"2024-04-17","issueVal":"156","issueTime":"16:00","clearDate":"2024-04-18","issueDate":"2024-04-17","moveName":"서부권역","clearTime":"17:00","issueGbn":"주의보","itemCode":"PM10"},{"clearVal":"95","sn":"238","districtName":"경남","dataDate":"2024-04-17","issueVal":"196","issueTime":"12:00","clearDate":"2024-04-18","issueDate":"2024-04-17","moveName":"진주권역","clearTime":"06:00","issueGbn":"주의보","itemCode":"PM10"},{"clearVal":"92","sn":"225","districtName":"제주","dataDate":"2024-04-17","issueVal":"182","issueTime":"11:00","clearDate":"2024-04-19","issueDate":"2024-04-17","moveName":"제주권역","clearTime":"00:00","issueGbn":"주의보","itemCode":"PM10"},{"clearVal":"96","sn":"236","districtName":"대구","dataDate":"2024-04-17","issueVal":"166","issueTime":"11:00","clearDate":"2024-04-18","issueDate":"2024-04-17","moveName":"군위권역","clearTime":"17:00","issueGbn":"주의보","itemCode":"PM10"}],"pageNo":1,"numOfRows":100},"header":{"resultMsg":"NORMAL_CODE","resultCode":"00"}}}

 

공부

package personal_study;

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

public class APIExplorer {

	public static void main(String[] args) throws IOException {

		// 1. URL을 만들기 위한 StringBuilder
		StringBuilder urlBuilder = new StringBuilder(
				"http://apis.data.go.kr/1360000/FmlandWthrInfoService/getDayStatistics"); /* URL */
		// 2. 오픈 API의요청 규격에 맞는 파라미터 생성, 발급받은 인증키.
		urlBuilder.append("?" + URLEncoder.encode("serviceKey", "UTF-8") + "=서비스키"); /* Service Key */
		urlBuilder
				.append("&" + URLEncoder.encode("pageNo", "UTF-8") + "=" + URLEncoder.encode("1", "UTF-8")); /* 페이지번호 */
		urlBuilder.append("&" + URLEncoder.encode("numOfRows", "UTF-8") + "="
				+ URLEncoder.encode("10", "UTF-8")); /* 한 페이지 결과 수 */
		urlBuilder.append("&" + URLEncoder.encode("dataType", "UTF-8") + "="
				+ URLEncoder.encode("XML", "UTF-8")); /* 요청자료형식(XML/JSON) */
		urlBuilder.append("&" + URLEncoder.encode("ST_YMD", "UTF-8") + "="
				+ URLEncoder.encode("20161201", "UTF-8")); /* 일통계 시작 날짜(YYYYMMDD) */
		urlBuilder.append("&" + URLEncoder.encode("ED_YMD", "UTF-8") + "="
				+ URLEncoder.encode("20161201", "UTF-8")); /* 일통계 종료 날짜(YYYYMMDD) */
		urlBuilder.append("&" + URLEncoder.encode("AREA_ID", "UTF-8") + "="
				+ URLEncoder.encode("4122000000", "UTF-8")); /* 지역 아이디(활용가이드 하단첨부 참고) */
		urlBuilder.append("&" + URLEncoder.encode("PA_CROP_SPE_ID", "UTF-8") + "="
				+ URLEncoder.encode("PA130201", "UTF-8")); /* 주산지 작물별 특성 아이디(활용가이드 하단첨부 참고) */

		// 3. URL 객체 생성.
		URL url = new URL(urlBuilder.toString());

		// 4. 요청하고자 하는 URL과 통신하기 위한 Connection 객체 생성.
		HttpURLConnection conn = (HttpURLConnection) url.openConnection();

		// 5. 통신을 위한 메소드 SET.
		conn.setRequestMethod("GET");

		// 6. 통신을 위한 Content-type SET.
		conn.setRequestProperty("Content-type", "application/json");

		// 7. 통신 응답 코드 확인.
		System.out.println("Response code: " + conn.getResponseCode());

		// 8. 전달받은 데이터를 BufferedReader 객체로 저장.
		BufferedReader rd;
		if (conn.getResponseCode() >= 200 && conn.getResponseCode() <= 300) {
			rd = new BufferedReader(new InputStreamReader(conn.getInputStream()));
		} else {
			rd = new BufferedReader(new InputStreamReader(conn.getErrorStream()));
		}

		// 9. 저장된 데이터를 라인별로 읽어 StringBuilder 객체로 저장.
		StringBuilder sb = new StringBuilder();
		String line;
		while ((line = rd.readLine()) != null) {
			sb.append(line);
		}

		// 10. 객체 해제.
		rd.close();
		conn.disconnect();

		// 11. 전달받은 데이터 확인.
		System.out.println(sb.toString());
	} // end of main

} // end of class

'Java' 카테고리의 다른 글

Parsing(파싱)  (0) 2024.06.10
Socket  (0) 2024.06.10
고수준 스트림(Data/Object Stream)  (0) 2024.05.24
사용자모드와 커널모드  (0) 2024.05.24
로그와 파일 저장  (0) 2024.05.24