728x90
반응형
flutter를 사용할 때 api를 호출하는 방법이 여러가지가 존재한다. 나는 그 중에서도 http와 dio에 대해서 글을 작성하고자 한다. 이 둘은 사용하기 편하다. 그런데 개인적으로 dio를 좀 더 선호하는 편이기는 하다. 아래에서 자세히 살펴보도록 하자.
http
1) 의존성 주입해서 설치하기
dependencies:
http: ^1.1.0
pubspec.yaml 파일에 들어가서 종속성 부분을 찾아 http를 의존성을 주입하여 설치해준다.
2) import 해주기
import 'package:http/http.dart' as http;
main.dart파일에 들어가서 맨 위에 적어주면 된다. 공식문서에 보면 alias가 안 붙여있는데 이를 붙여줘야 간단히 사용이 가능하다.
3) http 사용하기
void main() async {
var result = await http.get(쓰고자하는 url);
}
위와 같이 비동기로 사용해야 한다. 동기적으로 쓰면 url에 받아오는 정보를 언제 받아오는지 모르므로, 비동기로 사용하는 것을 추천한다. 해당 정보를 쓰면 statuscode, header, body정보를 가져온다.
- statuscode : if문으로 줘서 url에서 정보를 제대로 받아왔는지를 알 수 있다. 만약 200을 받아온다면, 제대로 정보를 받아왔음을 알 수 있다. if문을 쓴 코드는 아래와 같다. if문으로 줘서 확인해도 되고, try-catch문으로 확인하는 것도 추천한다.
if (result.statusCode == 200) {
print( jsonDecode(result.body) );
} else {
throw Exception('다시 시도해주세요.');
}
반응형
4) 한글이 깨질 때
import 'dart:convert';
main.dart에 들어가서 import를 해준다.
var responseBody = utf8.decode(result.bodyBytes);
이렇게 써주면 한글이 깨지는 것을 방지할 수 있다.
dio
1) 의존성 주입해서 설치하기
dependencies:
dio: ^replace-with-latest-version
위에서 설명한 것과 같이 pubspec.yaml 파일에 들어가서 종속성 부분을 찾아 dio를 의존성을 주입하여 설치해준다.
2) import 해주기
import 'package:dio/dio.dart';
3) dio 사용하기
import 'package:dio/dio.dart';
final dio = Dio();
void getHttp() async {
final response = await dio.get('<https://dart.dev>');
print(response);
}
👇🏻 참고
728x90
반응형