onRequest method
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);
}