onRequest method
请求拦截
在请求发送前调用,可以修改请求或直接返回响应
request 请求配置
handler 拦截器处理器
Implementation
@override
void onRequest(AdapterRequest request, RequestInterceptorHandler handler) {
final key = _generateKey(request);
if (_pendingRequests.containsKey(key) && _timers.containsKey(key)) {
handler.reject(AdapterException(
message: 'Duplicate request blocked: $key',
type: AdapterExceptionType.cancel,
originalError: 'DeduplicateInterceptor',
));
return;
}
_pendingRequests[key] = Completer<void>();
_timers[key]?.cancel();
_timers[key] = Timer(duration, () {
_cleanup(key);
});
handler.next(request);
}