interceptResponse method

  1. @override
Future<BaseResponse> interceptResponse({
  1. required BaseResponse response,
})
override

Implementation

@override
Future<BaseResponse> interceptResponse({
  required BaseResponse response,
}) async {
  final String message = '${response.request?.url}';

  switch (response) {
    case StreamedResponse streamedResponse:
      if (!settings.processStreamedResponse) {
        continue standard;
      }
      final Response normalResponse = await Response.fromStream(
        streamedResponse,
      );
      _logResponse(message: message, response: normalResponse);
      return StreamedResponse(
        Stream.value(normalResponse.bodyBytes),
        normalResponse.statusCode,
        contentLength: normalResponse.contentLength,
        request: normalResponse.request,
        headers: normalResponse.headers,
        isRedirect: normalResponse.isRedirect,
        persistentConnection: normalResponse.persistentConnection,
        reasonPhrase: normalResponse.reasonPhrase,
      );
    standard:
    default:
      _logResponse(message: message, response: response);
      return response;
  }
}