onRequest method

  1. @override
void onRequest(
  1. AdapterRequest request,
  2. RequestInterceptorHandler handler
)
override

请求拦截

在请求发送前调用,可以修改请求或直接返回响应

request 请求配置 handler 拦截器处理器

Implementation

@override
void onRequest(AdapterRequest request, RequestInterceptorHandler handler) {
  final key = _getKey(request);
  final now = DateTime.now();
  final lastTime = _lastRequestTimes[key];

  if (lastTime != null && now.difference(lastTime) < duration) {
    handler.reject(AdapterException(
      message: 'Request throttled: $key',
      type: AdapterExceptionType.cancel,
      originalError: 'ThrottleInterceptor',
    ));
    return;
  }

  _lastRequestTimes[key] = now;
  handler.next(request);
}