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) {
  final urlAndQueryParMapEntry = _extractUrl(err.requestOptions);
  final url = urlAndQueryParMapEntry.key;
  final queryParameters = urlAndQueryParMapEntry.value;
  InspectorController().addNewRequest(
    RequestDetails(
      requestMethod: RequestMethod.values.firstWhere(
        (e) => e.name == err.requestOptions.method,
      ),
      url: url,
      statusCode: err.response?.statusCode ?? 0,
      headers: err.requestOptions.headers,
      queryParameters: queryParameters,
      requestBody: err.requestOptions.data,
      responseBody: err.response?.data ?? err.message,
      sentTime: err.requestOptions.extra['startTime'],
      receivedTime: DateTime.now(),
    ),
  );
  super.onError(err, handler);
}