플러터에서 무료 날씨 API를 이용해 날씨정보 가져오는 방법을 알아보겠습니다.
1. 인터넷 권한 얻기
먼저 인터넷 권한을 얻어와야 합니다. 아래 AndroidManifest.xml파일에
<uses-permission android:name="android.permission.INTERNET" />
입력하여 인터넷 권한 여부를 묻습니다.


2. http설치
pubspec.yaml파일에 http: ^0.13.4를 입력하여 http를 설치합니다.

3. import
http.dart파일을 import 합니다.
import 'package:http/http.dart' as http;

4. api를 이용해 json으로 날씨정보 가져오기
아래 코드를 이용해 날씨정보를 가져올 수 있습니다. 아래 url변수는 날씨정보 api를 제공하는 url을 입력하시면 됩니다.
http.Response response = await http.get(Uri.parse(url));

저는 https://api.openweathermap.org/ 의 API를 이용했으며 url은
'https://api.openweathermap.org/data/2.5/weather?lat=${latitude}&lon=${longitude}&appid=$apikey&units=metric'
에서 latitude와 longitude (위도와 경도) 정보를 가져왔습니다.
apikey는 https://api.openweathermap.org/ 홈페이지 가입을 하여 My API keys에 들어가면 apikey를 얻을 수 있습니다.

5. jsonDecode를 이용해 원하는 데이터를 얻어오기
위를 통해 얻어온 response에는 여러 정보가 담겨있습니다. 그중 우리가 원하는 json정보는 response.body에 담겨있고 이를 파싱 하여 필요한 정보만 가져올 수 있습니다. 이를 위해서 jsonDecode함수를 이용하여 Json형태로 값을 가져올 수 있습니다.

'개발관련 > flutter' 카테고리의 다른 글
[flutter] 플러터 svg파일 가져오는 방법 (0) | 2022.07.20 |
---|---|
[flutter]플러터 구글폰트 사용하기 (0) | 2022.07.20 |
[flutter] 플러터 위치정보 가져오기 및 권한 물어보기 (0) | 2022.07.13 |
[flutter] 이미지 주어진 공간 만큼만 채우기(Expanded 위젯) (0) | 2022.07.05 |
[flutter] 플러터 TextField 값 가져오기 (0) | 2022.07.05 |
댓글