[flutter] dio_retry 패키지를 사용하여 서버 에러 처리하기

목차


dio_retry 패키지 소개

서버 통신 시에 가끔씩 서버 에러가 발생할 수 있습니다. 이때, 에러 처리를 해주어야 하는데, Flutter 애플리케이션에서는 dio_retry 패키지를 사용하여 서버 에러를 처리할 수 있습니다. dio_retry 패키지는 Dio HTTP 클라이언트를 보완해주는 패키지로, 요청이 실패했을 때 자동으로 재시도하도록 설정할 수 있습니다.


dio_retry 패키지 설치

pubspec.yaml 파일의 dependencies 섹션에 다음과 같이 dio_retry 패키지를 추가합니다.

dependencies:
  dio: ^4.0.0
  dio_retry: ^4.0.0

그리고 다음 명령어를 터미널에서 실행하여 패키지를 설치합니다.

flutter pub get

dio_retry 패키지 사용법

1. Dio 인스턴스 생성

먼저, dio_retry 패키지를 사용하기 위해 Dio 인스턴스를 생성합니다.

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

Dio dio = Dio();

2. dio_retry 설정

다음으로, dio 인스턴스에 dio_retry를 설정합니다. 이때, 최대 재시도 횟수와 간격을 정의할 수 있습니다.

dio.interceptors.add(
  RetryInterceptor(
    dio: dio,
    options: const RetryOptions(
      retries: 3, // 최대 재시도 횟수
      retryInterval: const Duration(seconds: 2), // 재시도 간격
    ),
  ),
);

3. 서버 통신 요청

이제 설정한 dio 인스턴스를 사용하여 서버에 요청을 보냅니다.

try {
  Response response = await dio.get('https://example.com/api/data');
  // 성공 시 처리
} on DioError catch (e) {
  if (e.type == DioErrorType.response) {
    // 서버 응답 에러 처리
  } else {
    // 그 외 에러 처리
  }
}

결론

dio_retry 패키지를 사용하면 효과적으로 서버 에러를 처리할 수 있습니다. 설정한 재시도 횟수와 간격에 따라 자동으로 재시도되므로, 안정적인 서버 통신을 구현할 수 있습니다.

참고 자료: