onError method

  1. @override
void onError(
  1. DioException err,
  2. ErrorInterceptorHandler handler
)

Called when an exception was occurred during the request.

Implementation

@override
void onError(DioException err, ErrorInterceptorHandler handler) {
  handler.next(err);
  final id = err.requestOptions.extra['iad_id'] as int?;
  if (id == null) return;
  final request = _requests[id]?.$1;
  if (request == null) {
    return;
  }
  final response0 = _Response(
    statusCode: err.response?.statusCode ?? -1,
    headers: err.response?.headers.map ?? {},
    data: err.response?.data,
    statusMessage: err.response?.statusMessage,
    message: err.message,
    timestamp: DateTime.timestamp(),
    duration: request.timestamp.difference(DateTime.timestamp()),
  );
  _requests[id] = (request, response0);
  notifyListeners();
}