android - Flutter 使用 http 响应头缓存 JSON 响应

标签 android json api flutter

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

诸如 Volley 响应缓存之类的东西。 https://stackoverflow.com/a/32022946/1993001Android

我正在使用 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());   

或者只是检查库:https://pub.dev/packages/dio_cache

关于android - Flutter 使用 http 响应头缓存 JSON 响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59115399/

相关文章:

android - Recyclerview反向布局起始滚动位置问题

asp.net-mvc - angularjs和mvc5之间沟通的最佳方式是什么?

android - 结合 CoverFlow 和通用图像加载器

java - 在 Android Fragment onResume 中重新填充值

jquery - 如何使用 jquery/ajex 为 phonegap 解析 "Remote "xml 文件?

java - 错误 415 不支持的媒体类型 : POST not reaching REST if JSON, 但如果 XML

javascript - 如何提取 json 对象中的 json 对象

json - 对存储在 Redis 中的 JSON 文档进行排序和过滤

ios - 如何映射 API?

javascript - 如何执行带有错误响应的 JSON api 调用?