본문 바로가기

JSP

JSP - 공공데이터 사용

반응형

1. 공공 데이터 사용 신청

1) 공공데이터포털 사이트 접속 (URL: https://www.data.go.kr/ )

2) 원하는 데이터 찾기

3) 오픈API → 활용신청 클릭 후, 신청 양식에 맞춰 제출하기

4) 마이페이지 → API신청 들어가기

5) 일반 인증키(Encoding / Decoding) 데이터 활용해서 인증키 입력란에 대입!

*공공 데이터마다 유효한 인증키가 다르기 때문에, Encoding 데이터와 Decoding 데이터를 ApikeyAuth에도 대입해보고 ApikeyAuth2에도 대입해보면서 맞는 인증키를 찾아야 함!

2. 공공 데이터 servlet으로 가져오기

@WebServlet("/api/Api01ElectricCharginAnsan")
public class Api01ElectricCharginAnsan extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    public Api01ElectricCharginAnsan() {
        super();

    }

	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		
		// 1. 공공데이터 포털에서 신청한 데이터 가져오기: URL 클래스 활용
		URL url = new URL("<https://api.odcloud.kr/api/15090398/v1/uddi:6fe0e3f2-0285-4999-9edf-995afe19a6ea?page=1&perPage=96&serviceKey=z427Q0DLkQqM0SDOc1Lz8jPzk%2BKj0ng%2Bvz7h3I8CpVs3T90219bWi2o%2BmStIxJW%2B9lwayA%2FsAT6apxsxuvydQg%3D%3D>");
		
		
		// 2. 스트림객체 생성하기
		// 1) InputStream 클래스 이용
		// InputStream inputStream = url.openStream();
		
		// 2) InputStreamReader 클래스 이용
		// URL 클래스 특징: openStream() 메소드 제공
		// InputStreamReader reader = new InputStreamReader( url.openStream(), "UTF-8" );		
		// 해석1: 스트림화하여 데이터를 바이트로 가져옴
		// 해석2: UTF-8로 인코딩 진행
		
		// 3) BufferedReader 클래스 이용
		BufferedReader bf = new BufferedReader( new InputStreamReader(url.openStream(), "UTF-8") );
		
			// byte[] array1 = new byte[100000];
			// 목적: inputStream을 이용하기 위해서는 byte 배열 필요
			// char[] array2 = new char[100000];
			// 목적: InputStreamReader을 이용하기 위해서는 char 배열 필요
		
		// 3. 스트림화한 객체 바이트로 읽어오기
		// inputStream.read( array1 );		// 특징: byte 배열로 읽을 수 있음
		// reader.read( array2 );			// 특징: 문자char 배열로 읽을 수 있음
		String result = bf.readLine();		// 특징: String으로 바로 읽을 수 있음 [배열 필요 없음]
		
		// System.out.println( array1 );
		// System.out.println( array2 );
		System.out.println( result );
	}
}

3. 공공 데이터 AJAX으로 가져오기

$.ajax({
		url: "<https://api.odcloud.kr/api/2241448/v1/uddi:71902926-a3d7-44b9-9a25-a46d2c6d2034_201909112103?page=1&perPage=150&serviceKey=c%2BqC%2BX56OkzH7wQp0MRSmjqIonksla%2FFjJR2zJurJLRPptbOM9ymF8kHAA5dSTesd8z%2BF%2Fg77w270mdXrEX10w%3D%3D>",
		method: "get",
		async: false,
		success: (r) =>{
			console.log(r); // --- 확인 완료
})
반응형

'JSP' 카테고리의 다른 글

JSP - 소켓 사용  (1) 2023.04.28
JSP - Servlet 사용  (0) 2023.04.28
JSP - 이메일 인증  (0) 2023.04.28
JSP - 페이징 처리  (0) 2023.04.28
Java JSP 알아보기  (0) 2023.03.06