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