onRequest method

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

Called when the request is about to be sent.

Implementation

@override
void onRequest(RequestOptions options, RequestInterceptorHandler handler) {
  extra = options.extra;
  _startTime = DateTime.now();
  _log.write("${'=' * 20}     ${options.method}     ${'=' * 20}\n");
  _log
    ..write('- URL: ')
    ..write(options.baseUrl)
    ..write(options.path);
  if (options.queryParameters.isNotEmpty) {
    StringBuffer parameters = StringBuffer();
    options.queryParameters.forEach((key, value) {
      parameters
        ..write('&')
        ..write(key)
        ..write('=')
        ..write(value);
    });
    _log
      ..write('?')
      ..write(parameters.toString().substring(1))
      ..write('\n');
  } else {
    _log.write('\n');
  }
  _log
    ..write('- METHOD: ')
    ..write(options.method)
    ..write('\n');
  _log
    ..write('- HEADER: \n')
    ..write(options.headers.mapToStructureString())
    ..write('\n');

  final data = options.data;
  if (data != null) {
    _log.write('- BODY: \n');
    if (data is Map) {
      _log
        ..write(data.mapToStructureString())
        ..write('\n');
    } else if (data is FormData) {
      var fields = {}
        ..addEntries(data.files)
        ..addEntries(data.fields);
      _log
        ..write(fields.mapToStructureString())
        ..write('\n');
    } else {
      _log
        ..write(data.toString())
        ..write('\n');
    }
  }
  handler.next(options);
}