onResponse method

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

Called when the response is about to be resolved.

Implementation

@override
Future<void> onResponse(
    Response response, ResponseInterceptorHandler handler) async {
  final dateTime = DateTime.now();

  if (InspectorController().userResponseStopperEnabled) {
    final oldResponseData = response.data;

    final newResponseData =
        await InspectorController().editResponse(oldResponseData);

    response.data = newResponseData ?? oldResponseData;
  }

  final urlAndQueryParMapEntry = _extractUrl(response.requestOptions);
  final url = urlAndQueryParMapEntry.key;
  final queryParameters = urlAndQueryParMapEntry.value;
  InspectorController().addNewRequest(
    RequestDetails(
      requestMethod: RequestMethod.values
          .firstWhere((e) => e.name == response.requestOptions.method),
      url: url,
      statusCode: response.statusCode ?? 0,
      headers: response.requestOptions.headers,
      queryParameters: queryParameters,
      requestBody: response.requestOptions.data,
      responseBody: response.data,
      sentTime: response.requestOptions.extra['startTime'],
      receivedTime: dateTime,
    ),
  );
  super.onResponse(response, handler);
}