onRequest method

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

Logs details of an outgoing API request.

Parameters:

  • options: The request options containing method, headers, and body.
  • handler: The interceptor handler to proceed with the request.

Implementation

@override
void onRequest(RequestOptions options, RequestInterceptorHandler handler) {
  final data = options.data;
  List<dynamic> data0 = <dynamic>[];
  if (data is MultipartFile) {
    data0 = <dynamic>[
      data.filename,
      data.contentType,
      data.length,
      data.headers,
    ];
  }

  if (data is FormData) {
    data0 = data.fields.map<String>((MapEntry<String, String> e) {
      return "${e.key} : ${e.value}";
    }).toList();
  }

  if (data0.isEmpty && options.queryParameters.isEmpty) {
    logger.d(
      "${options.uri.path}\n"
      "Body:$data\n"
      "Query:${options.queryParameters}",
      stackTrace: StackTrace.empty,
      error: "Request: [${options.method}] ${options.uri.host}",
    );
  } else {
    logger.d(
      "${options.uri.path}\n"
      "Body:$data0\n"
      "Query:${options.queryParameters}",
      stackTrace: StackTrace.empty,
      error: "Request: [${options.method}] ${options.uri.host}",
    );
  }
  super.onRequest(options, handler);
}