dio icon indicating copy to clipboard operation
dio copied to clipboard

scheduleRequestRetry cannot work in Dio 4.0.4?

Open chhua531001 opened this issue 3 years ago • 1 comments

Sir, I using Dio 4.0.0 to do scheduleRequestRetry retry method, my code is following, it's not working, please help me to fix this issue.

Future<Response> scheduleRequestRetry(RequestOptions requestOptions) async { StreamSubscription streamSubscription; final responseCompleter = Completer<Response>();

streamSubscription = connectivity.onConnectivityChanged.listen(
  (connectivityResult) async {
    final opts = Options(
      method: requestOptions.method,
      headers: requestOptions.headers,
    );
    if (connectivityResult != ConnectivityResult.none) {
      print("do retry");
      streamSubscription.cancel();
      print("do retry1");
      // Complete the completer instead of returning
      responseCompleter.complete(

        // dio.get('https://jsonplaceholder.typicode.com/posts'),
        dio.request(
          requestOptions.path,
          // 'https://jsonplaceholder.typicode.com/posts',
          cancelToken: requestOptions.cancelToken,
          data: requestOptions.data,
          onReceiveProgress: requestOptions.onReceiveProgress,
          onSendProgress: requestOptions.onSendProgress,
          queryParameters: requestOptions.queryParameters,
          // options: requestOptions,
          // options: opts,
          options: Options(
            method: requestOptions.method,
            sendTimeout: requestOptions.sendTimeout,
            receiveTimeout: requestOptions.receiveTimeout,
            extra: requestOptions.extra,
            headers: requestOptions.headers,
            responseType: requestOptions.responseType,
            contentType: requestOptions.contentType,
            validateStatus: requestOptions.validateStatus,
            receiveDataWhenStatusError:
            requestOptions.receiveDataWhenStatusError,
            followRedirects: requestOptions.followRedirects,
            maxRedirects: requestOptions.maxRedirects,
            requestEncoder: requestOptions.requestEncoder,
            responseDecoder: requestOptions.responseDecoder,
            listFormat: requestOptions.listFormat,
          ),
        ),
      );
      print("do retry2");
    }
  },
);

return responseCompleter.future;

}

chhua531001 avatar Mar 02 '22 05:03 chhua531001

up

heshesh2010 avatar Apr 21 '22 14:04 heshesh2010