onRequest method
Called when the request is about to be sent.
Implementation
@override
void onRequest(RequestOptions options, RequestInterceptorHandler handler) {
final extra = Map.of(options.extra);
options.extra[_timeStampKey] = DateTime.timestamp().millisecondsSinceEpoch;
if (!enabled ||
(filter != null &&
!filter!(options, FilterArgs(false, options.data)))) {
handler.next(options);
return;
}
if (request) {
_printRequestHeader(options);
}
if (requestHeader) {
_printMapAsTable(options.queryParameters, header: 'Query Parameters');
final requestHeaders = <String, dynamic>{};
requestHeaders.addAll(options.headers);
if (options.contentType != null) {
requestHeaders['contentType'] = options.contentType?.toString();
}
requestHeaders['responseType'] = options.responseType.toString();
requestHeaders['followRedirects'] = options.followRedirects;
if (options.connectTimeout != null) {
requestHeaders['connectTimeout'] = options.connectTimeout?.toString();
}
if (options.receiveTimeout != null) {
requestHeaders['receiveTimeout'] = options.receiveTimeout?.toString();
}
_printMapAsTable(requestHeaders, header: 'Headers');
_printMapAsTable(extra, header: 'Extras');
}
if (requestBody && options.method != 'GET') {
final dynamic data = options.data;
if (data != null) {
if (data is Map) _printMapAsTable(options.data as Map?, header: 'Body');
if (data is FormData) {
final formDataMap = <String, dynamic>{}
..addEntries(data.fields)
..addEntries(data.files);
_printMapAsTable(formDataMap, header: 'Form data | ${data.boundary}');
} else {
_printBlock(data.toString());
}
}
}
handler.next(options);
}