System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 基于请求链路拦截的iOS应用网络数据缓存方法、系统技术方案_技高网

基于请求链路拦截的iOS应用网络数据缓存方法、系统技术方案

技术编号:40671173 阅读:6 留言:0更新日期:2024-03-18 19:07
本发明专利技术提供了一种基于请求链路拦截的iOS应用网络数据缓存方法、系统。根据iOS应用发起网络请求时创建请求工厂,请求工厂创建网络任务,网络任务创建一请求链路;根据请求链路判断存在请求拦截则暂停当前的请求链路;缓存拦截器对请求数据进行缓存操作;缓存完成后则恢复请求链路,发送网络请求至服务器;在接收到服务器响应后,根据网络任务创建一响应链路;根据响应链路判断存在响应拦截则暂停当前的响应链路;缓存拦截器对响应链路的响应数据进行缓存操作;完成缓存后则恢复当前的响应链路,并将响应数据回调至iOS应用。通过请求链路的拦截实现缓存,缓存的使用和移除不影响网络请求的逻辑,支持多种缓存策略满足不同场景以及网络环境下的缓存。

【技术实现步骤摘要】

本专利技术涉及数据缓存,具体而言,涉及一种基于请求链路拦截的ios应用网络数据缓存方法、系统。


技术介绍

1、在移动应用开发中,网络请求是不可或缺的一部分,而数据的实时性和流畅性直接影响用户体验,网络数据的高效管理变得愈发重要。

2、nsurlcache是苹果官方提供的缓存技术,用于在ios应用中管理网络请求的缓存数据。它主要基于响应对象来存储和检索网络请求的响应数据。下面详细介绍nsurlcache的技术方案:nsurlcache以url为键映射缓存响应对象。缓存响应对象包含了一个网络响应和一个响应数据。当应用程序发起get网络请求时,nsurlcache会先根据url检索是否有匹配的缓存响应对象,如果有,就直接返回缓存数据,而不需要再发起网络请求。如果没有缓存响应对象,就发起网络请求,并将响应数据缓存起来。

3、nsurlcache通过与服务器进行验证来决定是否使用缓存数据,nsurlcache会在使用缓存数据之前向服务器发起请求进行验证,如果服务器返回该数据没有被修改过,则验证通过使用缓存数据,否则从服务器获取最新数据。

4、目前,包括nsurlcache在内的市场上的ios应用网络数据缓存方法,实现原理相似,但有如下缺点:与网络请求缓存过期模块捆绑在一起,不能做到缓存模块独立于网络请求模块;控制缓存的粒度较为粗糙,通常是基于整个请求的响应来进行缓存,在一些情况下,可能需要更细粒度的缓存控制,例如对不同请求的缓存数据合法性校验;缓存策略相对简单,缺乏一些高级功能,无法实现多样化的自定义缓存策略,如复杂的缓存过期策略、多级缓存等,无法灵活适应各种应用场景;复杂的缓存过期和管理需求,可能需要额外的自定义逻辑,在一些网络缓存场景下可能不够灵活;仅支持get网络请求的缓存。


技术实现思路

1、有鉴于此,本专利技术实施例的目的在于提供一种种基于请求链路拦截的数据缓存方案,通过链路拦截,开发者能够更加灵活、全面地掌控整个网络请求过程,为应用提供了更多定制化和优化的可能性,使得网络请求的管理和处理更加高效、安全、可靠。

2、本专利技术的第一方面提供了一种基于请求链路拦截的ios应用网络数据缓存方法,所述方法包括:

3、根据ios应用发起网络请求时创建请求工厂,根据所述请求工厂创建网络任务,根据所述网络任务创建一请求链路;

4、在所述网络请求发送之前,根据所述请求链路判断是否存在请求拦截,若存在则暂停当前的请求链路;所述网络请求包括请求数据;

5、缓存拦截器对所述请求数据进行缓存操作;缓存操作完成后,则恢复所述请求链路,发送所述网络请求至服务器;

6、在接收到服务器响应后,根据所述网络任务创建一响应链路;根据所述响应链路判断是否存在响应拦截,若存在则暂停当前的响应链路;

7、缓存拦截器对所述响应链路的响应数据进行缓存操作;完成所述响应数据的缓存后,则恢复当前的响应链路,并将响应数据回调至ios应用。

8、进一步,根据所述请求链路判断是否存在请求拦截,包括:根据所述响应链路判断是否存在响应拦截,包括:所述响应链路通过循环遍历拦截器组,判断是否存在响应拦截。

9、进一步,所述缓存拦截器对所述请求数据进行缓存操作,包括一级内存缓存、二级磁盘缓存、以及网络请求和更新步骤;

10、所述一级内存缓存步骤,包括:将从网络获取的数据先存储在内存中,使用字典或其他内存数据结构来保存;在请求数据之前,首先检查内存缓存中是否已经存在相应的数据,如果存在,直接从内存中获取;

11、所述二级磁盘缓存步骤,包括:如果内存缓存中不存在需要的数据,再去检查磁盘缓存;磁盘缓存使用文件系统或数据库来实现;如果磁盘缓存中有相应数据,从磁盘中读取并同时存储到内存缓存中,以备将来的快速访问;

12、所述网络请求和更新步骤,包括:如果内存缓存和磁盘缓存均没有需要的数据,进行网络请求,从服务器获取最新数据;将获取到的数据存储到内存缓存和磁盘缓存中,以供下次访问使用。

13、所述网络请求和更新步骤,包括:如果内存缓存和磁盘缓存均没有需要的数据,进行网络请求,从服务器获取最新数据;将获取到的数据存储到内存缓存和磁盘缓存中,以供下次访问使用。

14、进一步,所述缓存拦截器对所述请求数据进行缓存操作,还包括:

15、基于缓存键对所述请求数据进行缓存标识;所述缓存键根据请求链路参数、url地址、http方法中的至少一项来确定;

16、对所述请求数据进行缓存操作时确定缓存中是否存在相同缓存标识的数据,若存在则将所述请求数据缓存至相同缓存标识所在的缓存空间。

17、进一步,所述缓存拦截器对所述响应链路的响应数据进行缓存操作,包括:

18、根据自定义配置合法数据的数据结构,当接收到所述服务器的响应数据且有缓存需求时,所述缓存拦截器根据响应对象获取基础路径地址,以基础路径地址为key,映射找出对应的合法数据数据结构,如果数据合法,执行缓存操作。

19、进一步,所述方法还包括:每次ios应用启动时,根据默认有效期或自定义配置的有效期,检查本地数据库已过期数据并删除。

20、此外,本专利技术的第二方面提供了一种基于请求链路拦截的ios应用网络数据缓存系统,所述系统包括创建模块、第一判断与拦截模块、第二判断与拦截模块,其特征在于:

21、创建模块,用于根据ios应用发起网络请求时创建请求工厂,根据所述请求工厂创建网络任务,根据所述网络任务创建一请求链路;

22、第一判断与拦截模块,用于在所述网络请求发送之前,根据所述请求链路判断是否存在请求拦截,若存在则暂停当前的请求链路;所述网络请求包括请求数据;基于缓存拦截器对所述请求数据进行缓存操作;缓存操作完成后,则恢复所述请求链路,发送所述网络请求至服务器;

23、第二判断与拦截模块,在接收到服务器响应后,根据所述网络任务创建一响应链路;根据所述响应链路判断是否存在响应拦截,若存在则暂停当前的响应链路;缓存拦截器对所述响应链路的响应数据进行缓存操作;完成所述响应数据的缓存后,则恢复当前的响应链路,并将响应数据回调至ios应用。

24、进一步,所述缓存拦截器对所述请求数据进行缓存操作,还包括:基于缓存键对所述请求数据进行缓存标识;所述缓存键根据请求链路参数、url地址、http方法中的至少一项来确定;

25、对所述请求数据进行缓存操作时确定缓存中是否存在相同缓存标识的数据,若存在则将所述请求数据缓存至相同缓存标识所在的缓存空间。

26、此外,本专利技术的第三方面提供了一种电子装置,所述电子装置包括:一个或多个处理器,存储器,所述存储器用于存储一个或多个计算机程序;其特征在于,所述计算机程序被配置成由所述一个或多个处理器执行,所述程序包括用于执行如上所述的基于请求链路拦截的ios应用网络数据缓存方法步骤。

27、此外,本专利技术的本文档来自技高网...

【技术保护点】

1.一种基于请求链路拦截的iOS应用网络数据缓存方法,其特征在于,所述方法包括:

2.根据权利要求1所述的基于请求链路拦截的iOS应用网络数据缓存方法,根据所述请求链路判断是否存在请求拦截,包括:根据所述响应链路判断是否存在响应拦截,包括:所述响应链路通过循环遍历拦截器组,判断是否存在响应拦截。

3.根据权利要求2所述的基于请求链路拦截的iOS应用网络数据缓存方法,所述缓存拦截器对所述请求数据进行缓存操作,包括一级内存缓存、二级磁盘缓存、以及网络请求和更新步骤;

4.根据权利要求3所述的基于请求链路拦截的iOS应用网络数据缓存方法,所述缓存拦截器对所述请求数据进行缓存操作,还包括:

5.根据权利要求4所述的基于请求链路拦截的iOS应用网络数据缓存方法,所述缓存拦截器对所述响应链路的响应数据进行缓存操作,包括:

6.根据权利要求5所述的基于请求链路拦截的iOS应用网络数据缓存方法,所述方法还包括:每次iOS应用启动时,根据默认有效期或自定义配置的有效期,检查本地数据库已过期数据并删除。

7.一种基于请求链路拦截的iOS应用网络数据缓存系统,其特征在于,所述系统包括创建模块、第一判断与拦截模块、第二判断与拦截模块,其特征在于:

8.根据权利要求7所述的基于请求链路拦截的iOS应用网络数据缓存系统,所述缓存拦截器对所述请求数据进行缓存操作,还包括:基于缓存键对所述请求数据进行缓存标识;所述缓存键根据请求链路参数、URL地址、HTTP方法中的至少一项来确定;

9.一种电子装置,所述电子装置包括:一个或多个处理器,存储器,所述存储器用于存储一个或多个计算机程序;其特征在于,所述计算机程序被配置成由所述一个或多个处理器执行,所述程序包括用于执行如权利要求1-6任一项所述的基于请求链路拦截的iOS应用网络数据缓存方法步骤。

10.一种存储介质,所述存储介质存储有计算机程序;所述程序由处理器加载并执行以实现如权利要求1-6任一项所述的基于请求链路拦截的iOS应用网络数据缓存方法步骤。

...

【技术特征摘要】

1.一种基于请求链路拦截的ios应用网络数据缓存方法,其特征在于,所述方法包括:

2.根据权利要求1所述的基于请求链路拦截的ios应用网络数据缓存方法,根据所述请求链路判断是否存在请求拦截,包括:根据所述响应链路判断是否存在响应拦截,包括:所述响应链路通过循环遍历拦截器组,判断是否存在响应拦截。

3.根据权利要求2所述的基于请求链路拦截的ios应用网络数据缓存方法,所述缓存拦截器对所述请求数据进行缓存操作,包括一级内存缓存、二级磁盘缓存、以及网络请求和更新步骤;

4.根据权利要求3所述的基于请求链路拦截的ios应用网络数据缓存方法,所述缓存拦截器对所述请求数据进行缓存操作,还包括:

5.根据权利要求4所述的基于请求链路拦截的ios应用网络数据缓存方法,所述缓存拦截器对所述响应链路的响应数据进行缓存操作,包括:

6.根据权利要求5所述的基于请求链路拦截的ios应用网络数据缓存方法,所述方法还包括:每次ios应用启动时,根据默认有效期...

【专利技术属性】
技术研发人员:李乐强
申请(专利权)人:深圳联友科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1