dio
dio copied to clipboard
scheduleRequestRetry cannot work in Dio 4.0.4?
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;
}
up