request<T> method
请求方法(返回 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 等)');
}
}