SmartDio class

SmartDio 门面 API

提供简洁的静态方法和实例方法来发起 HTTP 请求。

基本用法:

// 初始化
SmartDio.init(SmartConfig(
  options: BaseOptions(baseUrl: 'https://api.example.com'),
  globalPlugins: [
    LoggerPlugin(),
    HeaderPlugin.single(headers: {
      'Authorization': () async => getToken(),
    }),
    RetryPlugin(retries: 3),
  ],
));

// 发起请求
final response = await SmartDio.get<User>('/user');

// 单次请求禁用缓存(热拔)
final response = await SmartDio.get('/realtime', excludePlugins: {CachePlugin});

// 单次请求添加插件(热插)
final response = await SmartDio.get('/api', extraPlugins: [CustomPlugin()]);

Properties

hashCode int
The hash code for this object.
no setterinherited
runtimeType Type
A representation of the runtime type of the object.
no setterinherited

Methods

doGet<T>(String path, {Map<String, dynamic>? queryParameters, Map<String, String>? headers, Duration? timeout, List<SmartPlugin>? extraPlugins, Set<Type>? excludePlugins, Map<Type, Set<LifecycleHook>>? skipHooks, BaseOptions? optionsOverride, CacheOptions? cacheOptions, OnStart? onStart, OnSuccess<T>? onSuccess, OnError? onError, OnFinish<T>? onFinish, ErrorMessageBuilder? errorMessageBuilder, String? successMessage, SuccessMessageBuilder<T>? successMessageBuilder, CancelToken? cancelToken, JsonDecoder<T>? fromJson, BytesDecoder<T>? fromBytes, RawResponseDecoder<T>? fromResponse}) Future<SmartResponse<T>>
实例 GET 请求
doPost<T>(String path, {dynamic data, Map<String, dynamic>? queryParameters, Map<String, String>? headers, Duration? timeout, List<SmartPlugin>? extraPlugins, Set<Type>? excludePlugins, Map<Type, Set<LifecycleHook>>? skipHooks, BaseOptions? optionsOverride, CacheOptions? cacheOptions, OnStart? onStart, OnSuccess<T>? onSuccess, OnError? onError, OnFinish<T>? onFinish, ErrorMessageBuilder? errorMessageBuilder, String? successMessage, SuccessMessageBuilder<T>? successMessageBuilder, CancelToken? cancelToken, bool isFormData = false, JsonDecoder<T>? fromJson, BytesDecoder<T>? fromBytes, RawResponseDecoder<T>? fromResponse}) Future<SmartResponse<T>>
实例 POST 请求
doRequest<T>(SmartRequest<T> request, {List<SmartPlugin>? extraPlugins, Set<Type>? excludePlugins, Set<String>? consumedErrorCodes, BaseOptions? optionsOverride, CacheOptions? cacheOptions, OnStart? onStart, OnSuccess<T>? onSuccess, OnError? onError, OnFinish<T>? onFinish, ErrorMessageBuilder? errorMessageBuilder, String? successMessage, SuccessMessageBuilder<T>? successMessageBuilder}) Future<SmartResponse<T>>
实例完整请求
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
toString() String
A string representation of this object.
inherited

Operators

operator ==(Object other) bool
The equality operator.
inherited

Static Methods

delete<T>(String path, {dynamic data, Map<String, dynamic>? queryParameters, Map<String, String>? headers, Duration? timeout, List<SmartPlugin>? extraPlugins, Set<Type>? excludePlugins, Map<Type, Set<LifecycleHook>>? skipHooks, BaseOptions? optionsOverride, CacheOptions? cacheOptions, OnStart? onStart, OnSuccess<T>? onSuccess, OnError? onError, OnFinish<T>? onFinish, ErrorMessageBuilder? errorMessageBuilder, String? successMessage, SuccessMessageBuilder<T>? successMessageBuilder, CancelToken? cancelToken, JsonDecoder<T>? fromJson, BytesDecoder<T>? fromBytes, RawResponseDecoder<T>? fromResponse}) Future<SmartResponse<T>>
DELETE 请求
get<T>(String path, {Map<String, dynamic>? queryParameters, Map<String, String>? headers, Duration? timeout, List<SmartPlugin>? extraPlugins, Set<Type>? excludePlugins, Map<Type, Set<LifecycleHook>>? skipHooks, BaseOptions? optionsOverride, CacheOptions? cacheOptions, OnStart? onStart, OnSuccess<T>? onSuccess, OnError? onError, OnFinish<T>? onFinish, ErrorMessageBuilder? errorMessageBuilder, String? successMessage, SuccessMessageBuilder<T>? successMessageBuilder, CancelToken? cancelToken, JsonDecoder<T>? fromJson, BytesDecoder<T>? fromBytes, RawResponseDecoder<T>? fromResponse}) Future<SmartResponse<T>>
GET 请求
init(SmartConfig config) → void
初始化默认客户端
of(String key) SmartDio
获取指定客户端实例
patch<T>(String path, {dynamic data, Map<String, dynamic>? queryParameters, Map<String, String>? headers, Duration? timeout, List<SmartPlugin>? extraPlugins, Set<Type>? excludePlugins, Map<Type, Set<LifecycleHook>>? skipHooks, BaseOptions? optionsOverride, CacheOptions? cacheOptions, OnStart? onStart, OnSuccess<T>? onSuccess, OnError? onError, OnFinish<T>? onFinish, ErrorMessageBuilder? errorMessageBuilder, String? successMessage, SuccessMessageBuilder<T>? successMessageBuilder, CancelToken? cancelToken, JsonDecoder<T>? fromJson, BytesDecoder<T>? fromBytes, RawResponseDecoder<T>? fromResponse}) Future<SmartResponse<T>>
PATCH 请求
post<T>(String path, {dynamic data, Map<String, dynamic>? queryParameters, Map<String, String>? headers, Duration? timeout, List<SmartPlugin>? extraPlugins, Set<Type>? excludePlugins, Map<Type, Set<LifecycleHook>>? skipHooks, BaseOptions? optionsOverride, CacheOptions? cacheOptions, OnStart? onStart, OnSuccess<T>? onSuccess, OnError? onError, OnFinish<T>? onFinish, ErrorMessageBuilder? errorMessageBuilder, String? successMessage, SuccessMessageBuilder<T>? successMessageBuilder, CancelToken? cancelToken, bool isFormData = false, JsonDecoder<T>? fromJson, BytesDecoder<T>? fromBytes, RawResponseDecoder<T>? fromResponse}) Future<SmartResponse<T>>
POST 请求
put<T>(String path, {dynamic data, Map<String, dynamic>? queryParameters, Map<String, String>? headers, Duration? timeout, List<SmartPlugin>? extraPlugins, Set<Type>? excludePlugins, Map<Type, Set<LifecycleHook>>? skipHooks, BaseOptions? optionsOverride, CacheOptions? cacheOptions, OnStart? onStart, OnSuccess<T>? onSuccess, OnError? onError, OnFinish<T>? onFinish, ErrorMessageBuilder? errorMessageBuilder, String? successMessage, SuccessMessageBuilder<T>? successMessageBuilder, CancelToken? cancelToken, JsonDecoder<T>? fromJson, BytesDecoder<T>? fromBytes, RawResponseDecoder<T>? fromResponse}) Future<SmartResponse<T>>
PUT 请求
register(String key, SmartConfig config) → void
注册命名客户端
request<T>(SmartRequest<T> request, {List<SmartPlugin>? extraPlugins, Set<Type>? excludePlugins, Set<String>? consumedErrorCodes, BaseOptions? optionsOverride, CacheOptions? cacheOptions, OnStart? onStart, OnSuccess<T>? onSuccess, OnError? onError, OnFinish<T>? onFinish, ErrorMessageBuilder? errorMessageBuilder, String? successMessage, SuccessMessageBuilder<T>? successMessageBuilder}) Future<SmartResponse<T>>
完整请求配置
setDefault(String key) → void
切换默认客户端