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) {
  final requestPath = '${options.baseUrl}${options.path}';

  // Check for per-request overrides
  final bool currentLogRequestUrl =
      options.extra['logRequestUrl'] ?? logRequestUrl;
  final bool currentLogRequestHeader =
      options.extra['logRequestHeader'] ?? logRequestHeader;
  final bool currentLogRequestBody =
      options.extra['logRequestBody'] ?? logRequestBody;

  // Log request details
  if (currentLogRequestUrl) {
    logDebug('onRequest: ${options.method} request => $requestPath',
        level: Level.info);
  }
  if (currentLogRequestHeader) {
    logDebug('onRequest: Request Headers => ${options.headers}',
        level: Level.info);
  }
  if (currentLogRequestBody) {
    logDebug('onRequest: Request Data => ${_prettyJsonEncode(options.data)}',
        level: Level.info);
  }

  // Call the super class to continue handling the request
  return super.onRequest(options, handler);
}