onError method
Called when an exception was occurred during the request.
Implementation
@override
void onError(DioException err, ErrorInterceptorHandler handler) async {
int retryCount = err.requestOptions.extra['retryCount'] ?? 0;
if (retryCount < maxRetries) {
err.requestOptions.extra['retryCount'] = retryCount + 1;
await Future.delayed(retryDelay);
try {
final response = await Dio().request(
err.requestOptions.path,
options: Options(
method: err.requestOptions.method,
headers: err.requestOptions.headers,
),
data: err.requestOptions.data,
queryParameters: err.requestOptions.queryParameters,
);
handler.resolve(response);
return;
} catch (e) {
// Continue to handler.next
}
}
handler.next(err);
}