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