Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/197.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 使用http响应头的颤振缓存JSON响应_Android_Json_Api_Flutter - Fatal编程技术网

Android 使用http响应头的颤振缓存JSON响应

Android 使用http响应头的颤振缓存JSON响应,android,json,api,flutter,Android,Json,Api,Flutter,我正在尝试为服务器JSON响应创建并使用缓存 类似于截击响应缓存的功能。 在安卓系统中 我正在使用DIO进行网络操作。您可以在DIO请求之上创建自己的缓存,并使用拦截器 您可以自己在中创建: import 'package:dio/dio.dart'; class CacheInterceptor extends Interceptor { CacheInterceptor(); var _cache = new Map<Uri, Response>(); @ove

我正在尝试为服务器JSON响应创建并使用缓存

类似于截击响应缓存的功能。 在安卓系统中


我正在使用
DIO
进行网络操作。

您可以在DIO请求之上创建自己的缓存,并使用拦截器

您可以自己在中创建:

import 'package:dio/dio.dart';

class CacheInterceptor extends Interceptor {
  CacheInterceptor();

  var _cache = new Map<Uri, Response>();

  @override
  onRequest(RequestOptions options) async {
    return options;
  }

  @override
  onResponse(Response response) async {
    _cache[response.request.uri] = response;
  }

  @override
  onError(DioError e) async{
    print('onError: $e');
    if (e.type == DioErrorType.CONNECT_TIMEOUT || e.type == DioErrorType.DEFAULT) {
      var cachedResponse = _cache[e.request.uri];
      if (cachedResponse != null) {
        return cachedResponse;
      }
    }
    return e;
  }
}
或者只需查看库:

final dio = Dio()..interceptors.add(CacheInterceptor());