onResponse method

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

Called when the response is about to be resolved.

Implementation

@override
void onResponse(Response response, ResponseInterceptorHandler handler) async {
  // Calculate response time if not already set
  int responseTime = 0;
  if (response.extra.containsKey('responseTime')) {
    responseTime = response.extra['responseTime'] as int? ?? 0;
  } else if (response.extra.containsKey('requestStartTime')) {
    final startTime = response.extra['requestStartTime'] as int;
    final endTime = DateTime.now().millisecondsSinceEpoch;
    responseTime = endTime - startTime;
    response.extra['responseTime'] = responseTime;
  }

  // Record successful proxy usage
  if (_currentProxy != null) {
    _log('Proxy request successful, response time: ${responseTime}ms');
    await _proxyManager.recordSuccess(_currentProxy!, responseTime);
  }

  handler.next(response);
}