一种对Dio网络请求进行监控的方法和装置制造方法及图纸

技术编号:31232107 阅读:31 留言:0更新日期:2021-12-08 10:08
本发明专利技术公开了一种对D i o网络请求进行监控的方法,所述方法包括:在F l utter应用层中嵌入AspectD实现层,以使得当F l utter应用层基于第一实现接口发起目标网络请求时,AspectD实现层生成第一钩子函数对所述第一实现接口进行挂钩处理,以获取d i o实例;当F l utter应用层调用所述d i o实例,并基于第二实现接口向外发送所述目标网络请求时,AspectD实现层生成第二钩子函数对所述第二实现接口进行挂钩处理,并通过所述第二钩子函数标记所述目标网络请求的发送时间戳和响应时间戳。本申请提供的技术方案,可以在不修改应用本身任何代码的情况下,实现对F l utter D i o网络请求的监控。请求的监控。请求的监控。

【技术实现步骤摘要】
一种对Dio网络请求进行监控的方法和装置


[0001]本专利技术涉及互联网
,特别涉及一种对Dio网络请求进行监控的方法和装置。

技术介绍

[0002]Flutter是一款移动UI框架,利用Flutter框架可以快速在IOS和Android系统上构建高质量的原生用户界面。在Flutter应用开发过程中,势必需要用到网络请求。Dio是Flutter插件库中的一款网络请求插件,支持Restful API、FormData、拦截器、请求取消、Cookie管理、文件上传/下载、超时、自定义适配器等操作,因此开发者经常使用Dio网络请求插件对网络请求进行封装。
[0003]当一个产品开发完毕交付到用户手中后,开发者为了更好的了解用户的使用情况、数据的加载情况,通常需要对网络请求的发送时长、数据的加载时间等网络情况进行监控。然而,目前并不存在对Flutter Dio网络请求进行监控的方案。
[0004]鉴于此,有必要提供一种对Dio网络请求进行监控的方法和装置以解决上述不足。

技术实现思路

[0005]本申请的目的在于本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种对Dio网络请求进行监控的方法,其特征在于,所述方法应用于客户端中,所述客户端构建有Flutter应用层,所述方法包括:在所述Flutter应用层中嵌入AspectD实现层,以使得当所述Flutter应用层基于第一实现接口发起目标网络请求时,所述AspectD实现层生成第一钩子函数对所述第一实现接口进行挂钩处理,以获取dio实例;当所述Flutter应用层调用所述dio实例,并基于第二实现接口向外发送所述目标网络请求时,所述AspectD实现层生成第二钩子函数对所述第二实现接口进行挂钩处理,并通过所述第二钩子函数标记所述目标网络请求的发送时间戳和响应时间戳,以监控所述目标网络请求的发送时长和响应时长。2.根据权利要求1所述的方法,其特征在于,在所述Flutter应用层中嵌入AspectD实现层包括:将AspectD源码注入Flutter框架中,以在所述Flutter框架中创建所述AspectD实现层;在所述AspectD实现层中添加所述第一实现接口和所述第二实现接口的依赖项,以使得所述AspectD实现层对所述第一实现接口和所述第二实现接口进行埋点设置。3.根据权利要求1所述的方法,其特征在于,当所述AspectD实现层获取dio实例后,所述方法还包括:设置拦截器,以监控所述目标网络请求和目标响应消息,其中,所述目标响应消息与所述目标网络请求相对应;释放所述第一实现接口,以使得所述第一实现接口调用所述第二实现接口向外发送所述目标网络请求。4.根据权利要求1所述的方法,其特征在于,所述AspectD实现层通过所述第二钩子函数标记所述目标网络请求的发送时间戳包括:在所述Flutter应用层调用所述dio实例发送所述目标网络请求之前,所述AspectD实现层通过所述第二钩子函数标记第一时间戳;在所述Flutter应用层调用所述dio实例完成所述目标网络请求的发送之后,所述AspectD实现层通过所述第二钩子函数标记第二时间戳。5.根据权利要求4所述的方法,其特征在于,所述AspectD实现层通过所述第二钩子函数标记所述目标网络请求的响应时间戳包括:在所述第二实现接口接收到所述目标响应消息前,所述AspectD实现层通过所述第二钩子函数标记第三时间戳;当所述第二实现接口接收到所述目标响应消息后,所述AspectD实现层通过所述第二钩子函数标记第四时间戳。6.根据...

【专利技术属性】
技术研发人员:郑秀群梁少泽
申请(专利权)人:网宿科技股份有限公司
类型:发明
国别省市:

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

1