[flutter] dio_retry 패키지를 사용하여 사진 업로드 및 처리하기

이번에는 Flutter 앱에서 네트워크 요청을 보낼 때 발생할 수 있는 재시도 및 실패 처리를 다루는 방법을 알아보겠습니다. 우리는 dio_retry 패키지를 사용하여 사진을 서버에 업로드하고, 재시도 및 실패 시에 대처하는 방법에 대해 알아볼 것입니다.

1. dio_retry 패키지 설치하기

먼저, dio_retry 패키지를 설치해야 합니다. pubspec.yaml 파일을 열고 dependencies 부분에 dio_retry를 추가하세요.

dependencies:
  flutter:
    sdk: flutter
  dio_retry: ^4.0.0

그리고 명령 프롬프트에서 flutter pub get을 실행하여 패키지를 설치하세요.

2. Dio 및 dio_retry 설정하기

이제 main.dart 파일에서 Dio와 dio_retry를 설정해보겠습니다. Dio는 HTTP 요청을 처리하기 위한 패키지이며, dio_retry는 Dio의 재시도 기능을 확장하는 패키지입니다.

import 'package:dio/dio.dart';
import 'package:dio_retry/dio_retry.dart';

void main() {
  Dio dio = Dio(); // Dio 인스턴스 생성
  dio.interceptors.add(RetryInterceptor(dio: dio)); // dio_retry 인터셉터 추가
}

3. 사진 업로드 및 처리하기

이제 앱에서 사진을 업로드하고, 재시도 및 실패 시에 대처하는 예제를 살펴보겠습니다.

void uploadPhoto(File photoFile) async {
  String uploadUrl = 'https://example.com/upload';

  try {
    FormData formData = FormData.fromMap({
      'file': await MultipartFile.fromFile(photoFile.path, filename: 'photo.jpg'),
    });

    Response response = await dio.post(uploadUrl, data: formData);

    if (response.statusCode == 200) {
      // 업로드 성공 시 처리
    } else {
      // 업로드 실패 시 처리
    }
  } catch (e) {
    // 네트워크 오류 등 예외 발생 시 처리
  }
}

위 예제에서는 dio_retry 패키지를 사용하여 Dio의 재시도 기능을 활용하여 사진을 업로드하고, 성공 또는 실패에 따라 적절히 처리하는 방법을 보여주었습니다.

이로써 flutter 앱에서 dio_retry 패키지를 사용하여 사진 업로드 및 처리하는 방법에 대해 알아보았습니다.

참고: