[flutter] dio_retry 패키지를 사용하여 특정 시간에 API 호출하기

이번 글에서는 flutter 앱에서 dio_retry 패키지를 사용하여 특정 시간에 API를 호출하는 방법을 알아보겠습니다.

dio_retry 패키지란?

dio_retrydio 클라이언트에 재시도 기능을 추가하는 패키지입니다. 이 패키지를 사용하면 API 호출 중에 발생할 수 있는 네트워크 오류에 대응하여 특정 시간 간격으로 재시도할 수 있습니다.

flutter 앱에 dio_retry 패키지 추가하기

pubspec.yaml 파일에 아래와 같이 dio_retry 패키지를 추가합니다.

dependencies:
  dio_retry: ^1.0.0

터미널에서 flutter pub get 명령어를 실행하여 패키지를 설치합니다.

dio_retry를 사용하여 특정 시간에 API 호출하기

아래는 dio 클라이언트에 dio_retry 패키지를 추가하여 특정 시간에 API를 호출하는 예제 코드입니다.

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

void main() {
  final dio = Dio();
  dio.interceptors.add(RetryInterceptor(
    dio: dio,
    options: const RetryOptions(
      retries: 2, // 2번 재시도
      retryInterval: const Duration(seconds: 5), // 5초 간격으로 재시도
    ),
  ));
  
  // 특정 시간에 API 호출
  Timer(const Duration(seconds: 10), () async {
    try {
      final response = await dio.get('https://api.example.com/data');
      print(response.data);
    } catch (e) {
      print('에러: $e');
    }
  });
}

위 코드에서는 RetryInterceptor를 사용하여 dio 클라이언트에 재시도 옵션을 추가하고, Timer를 사용하여 10초 후에 API를 호출하도록 설정했습니다.

이제 코드를 실행하면 10초 후에 API 호출이 발생하며, 발생한 네트워크 오류에 대해 재시도가 이루어지는 것을 확인할 수 있습니다.

이상으로 flutter 앱에서 dio_retry 패키지를 사용하여 특정 시간에 API를 호출하는 방법에 대해 알아보았습니다.