onStart method

  1. @override
Future<void> onStart(
  1. RequestContext ctx
)
override

请求开始前调用

Implementation

@override
Future<void> onStart(RequestContext ctx) async {
  // 懒加载安装 DioCacheInterceptor 到 Dio 实例(仅一次)
  // 注意:不能仅用 clientKey 记录安装状态。
  // 当同 key 客户端被 dispose 后重新 register,会得到全新 Dio 实例;
  // 若只看 key,可能导致新实例未安装缓存拦截器。
  final dio = SmartClientManager.instance.getDio(ctx.clientKey);
  final hasCacheInterceptor = dio.interceptors
      .any((interceptor) => interceptor is DioCacheInterceptor);
  if (!hasCacheInterceptor) {
    dio.interceptors.add(DioCacheInterceptor(options: options));
  }
}