- 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;
- 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');