request<T> method

Future<Response> request<T>({
  1. required String method,
  2. required String path,
  3. dynamic data,
  4. Map<String, dynamic>? queryParameters,
  5. Options? options,
  6. CancelToken? cancelToken,
  7. ProgressCallback? onSendProgress,
  8. ProgressCallback? onReceiveProgress,
  9. String? baseUrl,
})

请求方法(返回 Dio Response) method 请求方式:必须使用 hm.get、hm.post 等常量 baseUrl 可选的 baseUrl,如果提供则覆盖默认 baseUrl

Implementation

Future<dio_package.Response> request<T>({
  required String method,
  required String path,
  dynamic data,
  Map<String, dynamic>? queryParameters,
  dio_package.Options? options,
  dio_package.CancelToken? cancelToken,
  dio_package.ProgressCallback? onSendProgress,
  dio_package.ProgressCallback? onReceiveProgress,
  String? baseUrl,
}) async {
  final upperMethod = method.toUpperCase();

  // 如果提供了 baseUrl,需要构建完整 URL 或使用独立的 Dio 实例
  final dioInstance = baseUrl != null ? _getDioForBaseUrl(baseUrl) : dio;

  switch (upperMethod) {
    case hm.get:
      return dioInstance.get<T>(
        path,
        queryParameters: queryParameters,
        options: options,
        cancelToken: cancelToken,
        onReceiveProgress: onReceiveProgress,
      );
    case hm.post:
      return dioInstance.post<T>(
        path,
        data: data,
        queryParameters: queryParameters,
        options: options,
        cancelToken: cancelToken,
        onSendProgress: onSendProgress,
        onReceiveProgress: onReceiveProgress,
      );
    case hm.put:
      return dioInstance.put<T>(
        path,
        data: data,
        queryParameters: queryParameters,
        options: options,
        cancelToken: cancelToken,
        onSendProgress: onSendProgress,
        onReceiveProgress: onReceiveProgress,
      );
    case hm.delete:
      return dioInstance.delete<T>(
        path,
        data: data,
        queryParameters: queryParameters,
        options: options,
        cancelToken: cancelToken,
      );
    case hm.patch:
      return dioInstance.patch<T>(
        path,
        data: data,
        queryParameters: queryParameters,
        options: options,
        cancelToken: cancelToken,
        onSendProgress: onSendProgress,
        onReceiveProgress: onReceiveProgress,
      );
    default:
      throw ArgumentError('不支持的请求方式: $method,请使用 hm 常量(hm.get、hm.post 等)');
  }
}