onRequest method
请求拦截
在请求发送前调用,可以修改请求或直接返回响应
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);
}