onRequest method

  1. @override
void onRequest(
  1. RequestOptions options,
  2. RequestInterceptorHandler handler
)
inherited

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