본문 바로가기
안드로이드 자바

[JAVA][Android] 기상청 API 조회하기

by teamnova 2021. 5. 8.
728x90

안녕하세요!

오늘은 스틱코드를 이용하여 기상청 API를 활용해보겠습니다.

 

 

진행 순서는 다음과 같이 진행됩니다.

 

1. '동네예보 조회서비스' API 신청

2. 'HttpUrlConnection'을 통한 예보 정보 가져오기

3. 실행

 

 

1. '동네예보 조회서비스' API 신청

 

기상청 API인 '동네예보 조회서비스''공공데이터포털'에서 사용 신청이 가능합니다.

회원 가입 및 로그인 이후 사용이 가능하니 먼저 진행해주시기 바랍니다.

 

'공공데이터포털' 사이트 링크 www.data.go.kr/index.do

 

 

 

'동네예보 조회서비스'를 검색 후

오픈 API 란에서 동네예보 조회서비스 칸을 보시면 우측에 활용신청 버튼이 있습니다.

버튼을 눌러 신청 란을 작성후 완료하게 되면

 

'마이페이지'에 신청 확인이 가능하며, '동네예보 조회서비스'는 자동 승인이 되기 때문에

바로 사용가능한 활용탭으로 이동 됩니다.

 

승인 된 '동네예보 조회서비스'를 누르게 되면 개발계정 상세보기가 나오며

그림의 빨간 박스 안에는 API 사용 신청자의 고유 인증키가 적혀있습니다.

 

'기본정보 > 데이터명 > 상세설명'을 누르면 API 사용 설명이 적혀있으니 참고해주시기 바랍니다.

 

API를 사용하기 위해서는 인증키(Service Key)가 필요하므로 미리 복사해 두겠습니다.

 

 

API 제공 정보는 다음과 같습니다.

 

1. 예보버전조회

2. 동네예보조회

3. 초단기예보조회

4. 초단기실황조회

 

 

 

 

 

2. 'HttpUrlConnection'을 통한 예보 정보 가져오기

 

2-1. 'AndroidManifest' 권한 추가

<uses-permission android:name="android.permission.INTERNET" />

 

 

 

2-2. 'RequestHttpConnection' 클래스를 생성

 

'HttpUrlConnection'을 컨트롤할 'RequestHttpConnection' 클래스 생성

'동네예보 조회서비스'GET 방식으로 URL에 파라메터값을 포함하여 보내기 때문에 옵션 설정을 GET으로 설정합니다.

 

 

 

 

2-3. MainActivity

 

요청에 필요한 변수들(동네예보 조회서비스 상세설명 참고)을 선언하고

통신 후 출력된 값을 TextView에 출력되도록 처리합니다.

 

'service_key' 변수에 앞서 공공데이터포털에서 복사한 인증키를 넣어줍니다.

 

 

 

2-4. 네트워크 보안 규정 추가

 

안드로이드 9 버전 이후부터는 보안 규정이 바뀌어

HTTPS url은 별도의 처리 없이 통신이 가능하지만, HTTP 통신을 바로 사용할 수 없습니다.

 

이미지와 같이

'res > xml > network_security_config.xml' 파일을 추가합니다.

 

network_security_config.xml

 

 

이후 'AndroidManifest' 파일 'application'에 다음과 같이 추가해줍니다.

< ...

   android:networkSecurityConfig="@xml/network_security_config">

 

 

3. 실행

 

 

다음 포스팅은 '기상청 API 조회'에 이어 '활용' 포스팅으로 찾아뵙겠습니다.

 

 

 

참고 포스팅

* 동네예보 조회서비스 API 사용

stickode.com/detail.html?no=2104

 

스틱코드

 

stickode.com

* httpurlconnection : get

 

stickode.com/detail.html?no=32

 

스틱코드

 

stickode.com