onRequest method
Called before the request is sent. Return the modified request, or null to cancel the request.
Implementation
@override
Future<ClientRequest?> onRequest(ClientRequest request) async {
if (logRequest) {
final buffer = StringBuffer();
buffer.writeln('┌─────────────────────────────────────────────────────');
buffer.writeln('│ ➡️ REQUEST: ${request.method} ${request.url}');
if (logRequestHeaders && request.headers.isNotEmpty) {
buffer.writeln('│ Headers:');
request.headers.forEach((key, value) {
// Mask authorization headers for security
final displayValue = key.toLowerCase() == 'authorization'
? '${value.substring(0, 10)}...'
: value;
buffer.writeln('│ $key: $displayValue');
});
}
if (logRequestBody && request.body != null) {
buffer.writeln('│ Body:');
buffer.writeln('│ ${_formatBody(request.body)}');
}
buffer.writeln('└─────────────────────────────────────────────────────');
_log(buffer.toString());
}
return request;
}