onResponse method
Called when the response is about to be resolved.
Implementation
@override
void onResponse(Response response, ResponseInterceptorHandler handler) {
final requestId = response.requestOptions.extra['debug_request_id'] as String?;
final existingRequest = requestId != null
? DebugNetworkLogger.requests.firstWhere(
(r) => r.id == requestId,
orElse: () => DebugNetworkRequest(
id: requestId,
url: response.requestOptions.uri.toString(),
method: _parseMethod(response.requestOptions.method),
headers: response.requestOptions.headers,
body: response.requestOptions.data,
requestTime: DateTime.now(),
),
)
: null;
if (existingRequest != null) {
final updatedRequest = existingRequest.copyWith(
statusCode: response.statusCode,
responseHeaders: response.headers.map.map((k, v) => MapEntry(k, v.join(', '))),
responseBody: response.data,
responseTime: DateTime.now(),
durationMs: existingRequest.requestTime.difference(DateTime.now()).inMilliseconds.abs(),
isLoading: false,
);
DebugNetworkLogger.updateRequest(updatedRequest);
}
super.onResponse(response, handler);
}