在flutter上从API响应保存缓存

时间:2020-05-01 07:19:31

标签: flutter flutter-dependencies

我想寻求一种建议,以一种简单的方式在Flutter上缓存来自我的API的响应。我打算做的是,当没有可用的互联网时,它将使用缓存项;如果没有可用的互联网,它将缓存更新为最新的缓存。下面的代码是我正在使用的当前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");
      }
    }

1 个答案:

答案 0 :(得分:0)

根据您的需求使用情况,有多个软件包可以处理此问题:

  1. localstorage,这是基于JSON的存储。

  2. shared_preferences用于存储键值对。

  3. flutter_secure_storage用于存储应用程序的所有访问令牌和与安全相关的组件,例如所有会话信息,用户凭据等...

  4. SQL database上有一篇关于在Flutter中将文件存储在数据库中的教程,内容非常广泛,因此我建议您也阅读一下,以防万一您需要保留许多与应用程序相关的数据,以防万一没有互联网可用。