从 api 响应中保存缓存
Saving Cache from api response on flutter
我想寻求一种简单的方法来缓存我 API 对 flutter 的响应。我打算做的是,当没有可用的互联网时,它将使用缓存项,如果有可用的互联网,它将更新缓存到最新的 one.The 下面的代码是我当前的 API 调用正在使用。
_getCurrentPlanDetails() async{
var url = "http://dmp-portal-fixture.herokuapp.com/getCurrentPlan";
var response = await http.get(url);
if (response.statusCode == 200){
var jsonResponse = convert.jsonDecode(response.body);
setState(() {
currentPlan = jsonResponse["data"]["CurrentPlan"];
cutOffDate = jsonResponse["data"]["CutoffDate"];
contractExpiry = jsonResponse["data"]["ContractExpiry"];
monthsRemaining =jsonResponse["data"]["MonthsRemaining"];
});
print("get Current plan");
}else{
print("error current plan");
}
}
根据您的要求的用例,有多个包可以处理此问题:
localstorage 这是一个基于 JSON 的存储。
shared_preferences用于存储键值对。
flutter_secure_storage 用于存储应用程序的所有访问令牌和安全相关组件,例如所有会话信息、用户凭据等...
SQL database 关于在 Flutter 中将文件存储在数据库中有一个相当广泛的教程,所以我建议您也阅读该教程,以防您需要保留大量与应用程序相关的数据如果没有互联网可用。
我想寻求一种简单的方法来缓存我 API 对 flutter 的响应。我打算做的是,当没有可用的互联网时,它将使用缓存项,如果有可用的互联网,它将更新缓存到最新的 one.The 下面的代码是我当前的 API 调用正在使用。
_getCurrentPlanDetails() async{
var url = "http://dmp-portal-fixture.herokuapp.com/getCurrentPlan";
var response = await http.get(url);
if (response.statusCode == 200){
var jsonResponse = convert.jsonDecode(response.body);
setState(() {
currentPlan = jsonResponse["data"]["CurrentPlan"];
cutOffDate = jsonResponse["data"]["CutoffDate"];
contractExpiry = jsonResponse["data"]["ContractExpiry"];
monthsRemaining =jsonResponse["data"]["MonthsRemaining"];
});
print("get Current plan");
}else{
print("error current plan");
}
}
根据您的要求的用例,有多个包可以处理此问题:
localstorage 这是一个基于 JSON 的存储。
shared_preferences用于存储键值对。
flutter_secure_storage 用于存储应用程序的所有访问令牌和安全相关组件,例如所有会话信息、用户凭据等...
SQL database 关于在 Flutter 中将文件存储在数据库中有一个相当广泛的教程,所以我建议您也阅读该教程,以防您需要保留大量与应用程序相关的数据如果没有互联网可用。