Flutter Dio改造子库的颤振缓存机制

Flutter Dio改造子库的颤振缓存机制,flutter,dart,dio,Flutter,Dart,Dio,我在我的应用程序中使用的是Dio的翻新子库,我不知道如何定义缓存机制 我在改装示例代码中找到了这一行: @GET("") Future<String> testCustomOptions(@DioOptions() Options options); 文件: void main(List<String> args) { final dio = Dio(); // Provide a dio instance dio.options.hea

我在我的应用程序中使用的是
Dio
翻新
子库,我不知道如何定义缓存机制

我在
改装
示例代码中找到了这一行:

@GET("")
Future<String> testCustomOptions(@DioOptions() Options options);
文件:

void main(List<String> args) {
  final dio = Dio();   // Provide a dio instance
  dio.options.headers["Demo-Header"] = "demo header";   // config your dio headers globally
  final client = RestClient(dio);
  
  client.getTasks().then((it) => logger.i(it));
QuickStart

Add a dio-http-cache interceptor in Dio :

dio.interceptors.add(DioCacheManager(CacheConfig(baseUrl: "http://www.google.com")).interceptor);

Set maxAge for a request :

Dio().get(
  "http://www.google.com",
  options: buildCacheOptions(Duration(days: 7)),
);
我的完整实现代码:

Provider(
   create: (_) => MyApis.create(),
),


abstract class MyApis{
  factory MyApis(Dio dio, {String baseUrl}) = _MyApis;

  @GET("/login")
  Future<HttpResponse<PageInformation>> login(@DioOptions() Options options);

  static MyApis create() {
    final dio = Dio();
    dio.options.headers['Content-Type'] = 'application/json';
    dio.options.receiveTimeout = 60000;
    dio.options.connectTimeout = 120000;
    return _MyApis(dio);
  }
}
提供程序(
create:()=>myapi.create(),
),
抽象类MyAPI{
工厂myAPI(Dio Dio,{String baseUrl})=\u myAPI;
@获取(“/login”)
未来登录(@DioOptions()选项);
静态myapi创建(){
最终dio=dio();
头文件['Content-Type']='application/json';
dio.options.receiveTimeout=60000;
dio.options.connectTimeout=120000;
退货(dio);
}
}

在API添加点调用中添加参数

Future<HttpResponse<PageInformation>> login(@DioOptions() Options options);
为端点参数创建对象

Options options = buildCacheOptions(Duration(days: 10),forceRefresh: true);
调用API端点

myapi.login(options)
 
myapi.login(options)