onError method
Called when an exception was occurred during the request.
Implementation
@override
void onError(DioException err, ErrorInterceptorHandler handler) {
final id = err.requestOptions.extra['debug_id'];
final entry = _pendingLogs.remove(id);
final responseHeaders = err.response != null
? Map<String, dynamic>.from(err.response!.headers.map)
: null;
if (entry != null) {
final updated = DebugLogEntry(
id: entry.id,
timestamp: entry.timestamp,
method: entry.method,
url: entry.url,
baseUrl: entry.baseUrl,
requestData: entry.requestData,
queryParameters: entry.queryParameters,
statusCode: err.response?.statusCode,
isError: true,
errorMessage: err.message,
responseData: err.response?.data,
duration: DateTime.now().difference(entry.timestamp),
curl: _resolveCurl(err.requestOptions, entry.curl),
requestHeaders: Map<String, dynamic>.from(err.requestOptions.headers),
responseHeaders: responseHeaders,
);
_controller.updateLog(entry.id, updated);
}
handler.next(err);
}