onRequest method

  1. @override
Future<void> onRequest(
  1. RequestContext ctx,
  2. RequestOptions options
)
override

请求发送前调用(可修改 RequestOptions)

Implementation

@override
Future<void> onRequest(RequestContext ctx, RequestOptions options) async {
  // 构建固定参数
  final fixedParams = <String, dynamic>{};
  for (final entry in params.entries) {
    fixedParams[entry.key] = entry.value();
  }

  if (fixedParams.isEmpty) return;

  // GET 请求添加到 queryParameters
  if (ctx.request.method.toUpperCase() == 'GET') {
    options.queryParameters = {
      ...fixedParams,
      ...options.queryParameters,
      ...?ctx.request.queryParameters,
    };
  } else {
    // POST/PUT 等请求添加到 data
    if (options.data == null) {
      options.data = {};
    }
    if (options.data is Map) {
      options.data = {
        ...fixedParams,
        ...options.data,
      };
    }
  }
}