Flutter Dio Time Out Config && Cancel

정규호·2024년 1월 12일
0
  1. default config 방식
var dio = Dio(); // with default Options
// Set default configs
dio.options.baseUrl = 'https://www.xx.com/api';
dio.options.connectTimeout = 5000; //5s
dio.options.receiveTimeout = 3000;
  1. BaseOptions Instance 활용방식
Dio dio = Dio(
  BaseOptions(
    baseUrl: 'https://www.xx.com/api',
    connectTimeout: 5000,
    receiveTimeout: 3000,
  )
);

connectTimeout과 receiveTimeout의 차이는 connectTimeout 의 경우는 서버로부터 응받을때까지의 시간을 의미하며 설정 시간을 초과할 경우 connectTimeout Exception 이 발생되게 됩니다.
receiveTimeout 의 경우 서버로 부터 응답을 스트리밍?으로 받는 중에 연결 지속 시간을 의미합니다.
연결 지속 시간이 초과될 경우 receiveTimeout Exception 이 발생되게 됩니다. ex) 파일 다운로드

Cancellation
모든 요청에 대해 cancel 토큰을 활용하면 모든 요청에 대해서 요청이 취소가 됩니다.

CancelToken token = CancelToken();
dio.get(url, cancelToken: token)
   .catchError((DioError err){
    if (CancelToken.isCancel(err)) {
      print('Request canceled! '+ err.message)
    }else{
      // handle error.
    }
   });
// cancel the requests with "cancelled" message.
token.cancel('cancelled');

출처 : [플러터 / 라이브러리] API 통신에 편리한 dio의 기능정리.

profile
The Man Who Lift

0개의 댓글

관련 채용 정보