Dart

dio

멍멍코 2023. 9. 6. 11:35

dio


dio는 Dart에서 인기 있는 HTTP 클라이언트 패키지입니다. Flutter에서는 비동기 네트워크 요청을 수행할 때 특히 유용합니다. dio는 기본 http 패키지보다 추가적인 기능과 확장성을 제공하므로 많은 Flutter 개발자들이 이를 선호합니다.

dio의 주요 특징

1. 요청 및 응답 인터셉터: 요청 전후와 응답 전후에 어떤 작업을 수행할 수 있습니다. 예를 들면, 로깅, 인증 토큰 추가 등이 있습니다.
2. 타임아웃: 요청에 타임아웃을 설정할 수 있습니다.
3. 폼 데이터: FormData 객체를 사용하여 multipart/form-data 요청을 손쉽게 수행할 수 있습니다.
4. 응답 데이터 처리: 응답을 String, Stream, List, File 등 다양한 형식으로 처리할 수 있습니다.
5. 취소 토큰: 진행 중인 HTTP 요청을 취소하는 기능도 제공됩니다.
6. 자동 재시도: 실패한 HTTP 요청을 자동으로 재시도하는 기능도 있습니다.

dio 설치하기

1. 아래 URL으로 접속해주세요.

https://pub.dev/packages/dio/install

 

dio | Dart Package

A powerful HTTP networking package, supports Interceptors, Aborting and canceling a request, Custom adapters, Transformers, etc.

pub.dev

2. dio 패키지의 Installing페이지가 열리면 flutter pub add dio 우측 아이콘을 눌러서 복사해주세요

3. VSCode View - Terminal을 선택해주세요

4. Terminal 창에 복사한 flutter pub add dio를 붙여넣고 엔터를 눌러 실행해 주세요

5. pubspec.yaml 파일을 열어서 아래와 같이 dio가 있으면 설치가 완료된 것입니다.

간단한 사용 예제

1. dio 객체 생성

final dio = Dio();

2. GET 요청

Response response = await dio.get('https://api.example.com/data');
print(response.data);

아래 코드는 GET 메소드로 URL로 요청을 보내는 코드 입니다.

main() {
	Dio().get("URL");
}

HTTP 요청은 응답까지 시간이 걸리기 때문에 비동기 코드 입니다. 따라서 동기 방식으로 작동하게 하려면 아래와 같이 asyn & await을 추가해야 합니다.

main() async {
	Response result = await Dio().get("URL");
	print(result.data); // data 안에 응답 내용이 들어 있습니다.
}

3. POST 요청

Response response = await dio.post(
  'https://api.example.com/data',
  data: {'key1': 'value1', 'key2': 'value2'},
);
print(response.data);

4. 요청 인터셉터 사용

dio.interceptors.add(
  InterceptorsWrapper(
    onRequest: (options, handler) {
      // 요청 전에 어떤 작업을 수행
      options.headers.addAll({'Authorization': 'Bearer your_token'});
      return handler.next(options);
    },
    onResponse: (response, handler) {
      // 응답 수신 후 어떤 작업을 수행
      return handler.next(response);
    },
  ),
);

'Dart' 카테고리의 다른 글

동기 비동기  (0) 2023.09.06