DioHttpAdapter class
Dio HTTP 适配器
将 HttpRequestConfig 转换为 Dio 请求,提供统一的 HTTP 语义层。 支持请求/响应拦截器、全局配置、错误转换等功能。
基础用法
final adapter = DioHttpAdapter(
dio: Dio(BaseOptions(baseUrl: 'https://api.example.com')),
);
// 执行请求
final response = await adapter.request<Map<String, dynamic>>(
HttpRequestConfig.get('/users/1'),
);
print(response.data);
与 useRequest 集成
final adapter = DioHttpAdapter.withBaseUrl('https://api.example.com');
final result = useRequest<User, HttpRequestConfig>(
(config) => adapter.request<Map<String, dynamic>>(config)
.then((res) => User.fromJson(res.data!)),
options: UseRequestOptions(
manual: true,
),
);
// 发起 GET 请求
result.run(HttpRequestConfig.get('/users/1'));
// 发起 POST 请求
result.run(HttpRequestConfig.post('/users', data: {'name': 'John'}));
添加拦截器
final adapter = DioHttpAdapter(
dio: Dio()..interceptors.addAll([
LogInterceptor(requestBody: true, responseBody: true),
InterceptorsWrapper(
onRequest: (options, handler) {
options.headers['Authorization'] = 'Bearer $token';
handler.next(options);
},
),
]),
);
Constructors
- DioHttpAdapter({required Dio dio, dynamic responseTransformer(dynamic data)?, dynamic errorTransformer(DioException error)?})
-
DioHttpAdapter.withBaseUrl(String baseUrl, {Duration? connectTimeout, Duration? receiveTimeout, Duration? sendTimeout, Map<
String, dynamic> ? headers, dynamic responseTransformer(dynamic data)?, dynamic errorTransformer(DioException error)?}) -
使用 baseUrl 创建适配器
factory
Properties
- dio → Dio
-
Dio 实例
final
- errorTransformer → dynamic Function(DioException error)?
-
错误转换器
final
- hashCode → int
-
The hash code for this object.
no setterinherited
- responseTransformer → dynamic Function(dynamic data)?
-
响应数据转换器
final
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
Methods
-
delete<
T> (String path, {dynamic data, Map< String, dynamic> ? queryParameters, Map<String, dynamic> ? headers, CancelToken? cancelToken}) → Future<Response< T> > - 执行 DELETE 请求的便捷方法
-
download(
String urlPath, String savePath, {Map< String, dynamic> ? queryParameters, Map<String, dynamic> ? headers, CancelToken? cancelToken, ProgressCallback? onProgress, bool deleteOnError = true}) → Future<Response> - 下载文件的便捷方法
-
downloadFile(
String urlPath, {required String savePath, Map< String, dynamic> ? queryParameters, Map<String, dynamic> ? headers, CancelToken? cancelToken, ProgressCallback? onProgress, bool deleteOnError = true}) → Future<Response> - 下载文件的便捷别名(与 README 示例对齐)
-
get<
T> (String path, {Map< String, dynamic> ? queryParameters, Map<String, dynamic> ? headers, CancelToken? cancelToken, ProgressCallback? onReceiveProgress}) → Future<Response< T> > - 执行 GET 请求的便捷方法
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
patch<
T> (String path, {dynamic data, Map< String, dynamic> ? queryParameters, Map<String, dynamic> ? headers, CancelToken? cancelToken, ProgressCallback? onSendProgress}) → Future<Response< T> > - 执行 PATCH 请求的便捷方法
-
post<
T> (String path, {dynamic data, Map< String, dynamic> ? queryParameters, Map<String, dynamic> ? headers, CancelToken? cancelToken, ProgressCallback? onSendProgress, ProgressCallback? onReceiveProgress}) → Future<Response< T> > - 执行 POST 请求的便捷方法
-
put<
T> (String path, {dynamic data, Map< String, dynamic> ? queryParameters, Map<String, dynamic> ? headers, CancelToken? cancelToken, ProgressCallback? onSendProgress}) → Future<Response< T> > - 执行 PUT 请求的便捷方法
-
request<
T> (HttpRequestConfig config, {CancelToken? cancelToken}) → Future< Response< T> > - 执行 HTTP 请求
-
toString(
) → String -
A string representation of this object.
inherited
-
upload<
T> (String path, {required MultipartFile file, String fieldName = 'file', Map< String, dynamic> ? extraFields, Map<String, dynamic> ? headers, CancelToken? cancelToken, ProgressCallback? onProgress}) → Future<Response< T> > - 上传文件的便捷方法
-
uploadFile<
T> (String path, {required String filePath, String fileField = 'file', String? filename, Map< String, dynamic> ? extraFields, Map<String, dynamic> ? headers, CancelToken? cancelToken, ProgressCallback? onProgress}) → Future<Response< T> > - 上传文件的便捷别名(与 README 示例对齐)
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited