onRequest method

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

Called when the request is about to be sent.

Implementation

@override
void onRequest(
  RequestOptions options,
  RequestInterceptorHandler handler,
) {
  if (level.isNone) return handler.next(options);

  // Generate or use existing request ID for tracking
  final requestId =
      options.extra['requestId'] as String? ?? _generateRequestId();
  options.extra['requestId'] = requestId;

  _log('┌──── Request [$requestId] ────────────────────────────');
  _log('│ ${options.method} ${options.uri}');

  if (level.includesHeaders && options.headers.isNotEmpty) {
    final headers = _redactHeaders(options.headers);
    _log('│ Headers:');
    headers.forEach((key, value) {
      _log('│   $key: $value');
    });
  }

  if (level.includesBody && options.data != null) {
    final data = _redactData(options.data);
    _log('│ Body: $data');
  }

  if (options.queryParameters.isNotEmpty) {
    _log('│ Query Parameters: ${options.queryParameters}');
  }

  _log('└──────────────────────────────────────────────────────');

  handler.next(options);
}