onResponse method

  1. @override
void onResponse(
  1. Response response,
  2. ResponseInterceptorHandler handler
)
override

Called when the response is about to be resolved.

Implementation

@override
void onResponse(Response response, ResponseInterceptorHandler handler) async {
  final request = response.requestOptions;
  final startTime = request.extra['startTime'] as DateTime?;
  final timestamp = startTime ?? DateTime.now();

  final log = SimpleOverlayNetworkLog(
    timestamp: timestamp,
    tag: request.path,
    method: request.method,
    url: request.uri.toString(),
    requestHeaders: Map<String, String>.from(
        request.headers.map((k, v) => MapEntry(k, v.toString()))),
    requestBody: request.data.toString(),
    statusCode: response.statusCode,
    responseHeaders:
        response.headers.map.map((k, v) => MapEntry(k, v.join(','))),
    responseBody: response.data.toString(),
    isSuccess: response.statusCode != null && response.statusCode! < 400,
  );

  await _storageService.addNetworkLog(log);
  handler.next(response);
}