【发布时间】:2020-03-25 16:15:43
【问题描述】:
我正在尝试为服务器 JSON 响应创建和使用缓存。
类似 volley 响应缓存的东西。
https://stackoverflow.com/a/32022946/1993001 在Android
我正在使用DIO 进行网络操作。
【问题讨论】:
我正在尝试为服务器 JSON 响应创建和使用缓存。
类似 volley 响应缓存的东西。
https://stackoverflow.com/a/32022946/1993001 在Android
我正在使用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());
【讨论】: