onRequest method

  1. @override
void onRequest(
  1. RequestOptions options,
  2. RequestInterceptorHandler handler
)

Called when the request is about to be sent.

Implementation

@override
void onRequest(dio_package.RequestOptions options,
    dio_package.RequestInterceptorHandler handler) {
  // 记录请求开始时间和唯一ID
  final startTime = DateTime.now();
  final requestId = _generateRequestId(options);
  options.extra[_requestStartTimeKey] = startTime;
  options.extra[_requestIdKey] = requestId;

  // 根据日志模式决定打印方式
  switch (logMode) {
    case LogMode.complete:
      // 完整链路模式:只打印简要提示(如果启用)
      if (showRequestHint) {
        _logRequestHint(options, requestId);
      }
      break;
    case LogMode.realTime:
      // 实时模式:立即打印完整请求信息
      _logRequest(options);
      break;
    case LogMode.brief:
      // 简要模式:只打印方法+URL
      _logRequestBrief(options);
      break;
  }

  handler.next(options);
}