掌桥专利:专业的专利平台
掌桥专利
首页

一种请求调用方法、系统及相关装置

文献发布时间:2024-04-18 19:59:31


一种请求调用方法、系统及相关装置

技术领域

本申请涉及网络数据传输领域,特别涉及一种请求调用方法、系统及相关装置。

背景技术

项目网络请求频繁调用和修改单例中的http请求管理类,导致连续多个请求时,可能会修改到某个请求的请求类型或者返回类型。从而引发的其它问题,例如多个调用基础请求的类、并发请求时,某一个请求修改请求参数,可能会引起另一个请求的参数错误。

因此,如何避免网络请求对于http请求管理类的不必要改动是本领域技术人员亟需解决的技术问题。

发明内容

本申请的目的是提供一种请求调用方法、请求调用系统、计算机可读存储介质和服务器,能够实现频繁调用和对http请求管理类进行修改请求时,不改变http请求管理类自身属性。

为解决上述技术问题,本申请提供一种请求调用方法,具体技术方案如下:

接收网络请求;

判断所述网络请求是否为对http请求管理类的修改请求;

若是,复制所述http请求管理类得到复制体;

基于所述复制体处理所述修改请求,并在请求处理完成后返回请求响应结果。

可选的,接收对http请求管理类的修改请求之前,还包括:

创建网络请求配置管理器,并设置所述网络请求配置管理器的配置参数;其中,所述配置参数包括请求头、请求序列化、返回序列化、请求前参数处理、请求结果处理和自定义配置中的任一项或者任意几项的组合;

创建请求类,并利用所述网络请求配置管理器设置所述请求类中的请求管理配置值;其中,所述配置值包含所述复制体的回调参数。

可选的,接收对http请求管理类的修改请求之前,还包括:

确定请求参数;

利用所述网络请求配置管理器根据所述请求参数创建所述网络请求;所述请求参数至少包括请求类型、结果回调和配置值复制体的回调。

可选的,利用所述网络请求配置管理器根据所述请求参数创建网络请求时,还包括:

判断所述网络请求是否为通用调用请求;

若是,配置所述网络请求的配置值为默认值;

若否,获取所述请求类中的请求管理配置值并添加至所述网络请求的自定义配置中。

可选的,判断所述网络请求是否为对http请求管理类的修改请求包括:

判断所述网络请求中是否包含配置值处理参数;

若是,确认所述网络请求为对http请求管理类的修改请求。

可选的,在请求处理完成后返回请求响应结果后,还包括:

将所述请求响应结果添加至所述网络请求的结果回调中。

可选的,根据所述修改请求对复制体进行修改操作,并在修改请求完成后返回修改请求结果之后,还包括:

删除所述复制体,并保持所述http请求管理类为默认状态。

本申请还提供一种请求调用系统,包括:

请求接收模块,用于接收网络请求;

请求判断模块,用于判断所述网络请求是否为对http请求管理类的修改请求;

复制模块,用于所述请求判断模块的判断结果为是时,复制所述http请求管理类得到复制体;

请求处理模块,用于基于所述复制体处理所述修改请求,并在请求处理完成后返回请求响应结果。

本申请还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的方法的步骤。

本申请还提供一种服务器,包括存储器和处理器,所述存储器中存有计算机程序,所述处理器调用所述存储器中的计算机程序时实现如上所述的方法的步骤。

本申请提供一种请求调用方法,包括:接收网络请求;判断所述网络请求是否为对http请求管理类的修改请求;若是,复制所述http请求管理类得到复制体;基于所述复制体处理所述修改请求,并在请求处理完成后返回请求响应结果。

本申请在接收到对http请求管理类的修改请求时,复制http请求管理类后对复制体进行修改操作,修改请求完成后返回修改请求结果,不对原http请求管理类进行改动,使得http请求管理类能够用于后续的请求调用,从而提高了高并发状态下的http请求的成功率,增加程序的维护性和扩展性。

本申请还提供一种请求调用系统、计算机可读存储介质和服务器,具有上述有益效果,此处不再赘述。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本申请实施例所提供的一种请求调用方法的流程图;

图2为本申请实施例所提供的一种请求调用系统结构示意图;

图3为本申请实施例所提供的一种电子设备的结构示意图。

具体实施方式

为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

请参考图1,图1为本申请实施例所提供的一种请求调用方法的流程图,该请求调用方法包括:

S101:接收网络请求;

本步骤直接接收网络请求,在此对于如何接收网络请求不作限定,同时对于接收何种网络请求不作限定,该网络请求可以为项目运行过程中涉及的调参请求或者回参请求等等。同时对于所接收到的网络请求的具体格式也不作限定,只要为可识别格式的网络请求均可。

S102:判断所述网络请求是否为对http请求管理类的修改请求;若是,进入S103;

本步骤旨在判断该网络请求是否为对http请求管理类的修改请求。部分网络请求中,在需要调用和修改http请求管理类。而在高并发应用场景中,连续多个网络请求,易出现网络请求之间出现结果响应错误的情形,例如网络请求A接收到网络请求B的响应结果。

本步骤主要判断在步骤S101中获取到的网络请求是否包含对http请求管理类的修改,若为需要http请求管理类的网络请求,则确认该网络请求为对http请求管理类的修改请求。

本步骤对于如何判断网络请求是否为对http请求管理类的修改请求不作具体限定,在具体判断网络请求是否为对http请求管理类的修改请求时,可以通过对网络请求是否包含用于修改http请求管理类的参数或者函数进行判断。

S103:复制所述http请求管理类得到复制体;

为了避免网络请求之间的响应错误,本步骤需要复制http请求管理类得到复制体,该复制过程主要包含对http请求管理类的名称和参数的复制,以便于执行相应的网络请求。

该复制体可以包含http请求管理类的各种属性,在此不作具体限定,例如可以包含超时时长、网络请求的基地址等信息。

S104:基于所述复制体处理所述修改请求,并在请求处理完成后返回请求响应结果。

在上一步骤复制得到http请求管理类的复制体后,本步骤需要基于复制体处理修改请求,换言之,该修改请求实际应用对象为http请求管理类的复制体,而对于http请求管理类的本体无影响。在基于http请求管理类的复制体处理修改请求后,返回相应的请求响应结果。

需要说明的是,该http请求管理类的复制体通常用于处理一个修改请求,且该复制体的存活周期为接收到确认为修改请求的网络请求开始,直至该修改请求处理完成,并返回响应结果为止。此后http请求管理类的复制体即可删除。即在请求处理完成后返回请求响应结果后,即可删除所述复制体,并保持http请求管理类为默认状态。即http请求管理类在接收到网络请求前后保持不变,从而能够用于下一次的请求调用。

本申请实施例在接收到对http请求管理类的修改请求时,复制http请求管理类后对复制体进行修改操作,修改请求完成后返回修改请求结果,不对原http请求管理类进行改动,使得http请求管理类能够用于后续的请求调用,从而提高了高并发状态下的http请求的成功率,增加程序的维护性和扩展性。

在上述实施例的基础上,作为优选的实施例,为了更好的实现对http请求管理类的复制体执行修改操作,并返回响应结果,可以事先定义配置文件,便于对网络请求进行管理,具体的,可以在接收对http请求管理类的修改请求之前,执行如下步骤:

创建网络请求配置管理器,也即RequestManagerConfiguration,并设置网络请求配置管理器的配置参数。配置参数可以包括请求头header、请求序列化requestSerializer、返回序列化reponseSerializer、请求前参数处理requestHandler、请求结果处理responseHandler和自定义配置RequesrConfig中的任一项或者任意几项的组合。

创建请求类,也即RequestManager,并利用所述网络请求配置管理器设置所述请求类中的请求管理配置值;其中,所述配置值包含所述复制体的回调参数。

此外,还可以创建项目业务配置文件,可命名为RequestConfig,用于自定义项目业务配置参数,包括但不限于token刷新状态、是否展示loading、是否保存主动停止的网络请求。在项目中需要定期刷新token,token是一种服务于项目安全机制的令牌,每隔一定时间需要刷新一次,若未在指定时间刷新,表明存在接口异常。是否展示loading指在页面中是否展示网络请求的加载状态。通过在项目业务配置文件中配置token刷新状态,即在网络请求前配置项目业务参数,实现了token刷新可以业务内完成,不必在业务完成后才能刷新。

同时,还可以针对请求接口单独配置文件,可命名为Response,用于存储请求结果,包含请求成功接口和请求失败的错误信息。

在上述文件创建后,若在项目初次运行时,先执行初始化过程,即设置网络请求配置管理器的配置参数,以及利用网络请求配置管理器配置请求类中的请求管理配置值configuration。

对请求序列化和返回序列化指统一请求和请求响应的格式。请求前参数处理至对网络请求的预处理,请求结果处理指对请求结果的预处理,主要涉及网络请求和请求结果的格式转换等过程。

网络请求配置管理器可以用于对网络请求进行基础配置,同时也可以利用网络请求配置管理器,设置每个网络请求自身的请求参数,即直接基于网络请求配置管理器进行调参。使得网络请求可以均由同一网络库处理后,实现统一的基础配置,能够处理高并发状态下的对http请求管理类的调用请求和修改请求,可拓展性强。

请求类中可以包含传入请求接口、参数和请求管理配置值,以及返回请求响应结果对象等若干个参数,用于记录网络请求的调用状态。具体的,且可以包含请求类型、接口、接口所需参数,文件二进制,网络请求的上传进度,网络请求的结果回调,用于执行请求管理配置值复制体的回调的配置值处理参数。出参为NSURLSessionDataTask,网络请求类。

在初始化过程执行完毕后,即可创建网络请求。具体的,可以先确定请求参数,从而利用所述网络请求配置管理器根据请求参数创建网络请求。在此对于请求参数的具体内容不作限定,其至少包括请求类型RequestMethod、结果回调completionhandler和配置值复制体的回调,即RequestManagerConfiguration对应copy的回调,此外,还可以包含接口URLstring、接口参数parameters、网络请求的上传进度uploadProgress等参数。请求类型指网络请求的类型,可以为post、get、put和delete等类型。特别的,该请求参数中包含配置值复制体的回调,用于在检测到网络请求为对http请求管理类的修改请求后,记录处理后的响应结果。

此外,在创建网络请求时,还可以判断所述网络请求是否为通用调用请求,并根据判断结果是否为通用调用请求对其中的配置值进行设置。所谓通用调用请求,主要指调参请求和回参请求。若网络请求为通用调用请求,可以配置所述网络请求的配置值为默认值。否则可以获取请求类中的请求管理配置值并添加至网络请求的自定义配置中。

则基于本实施例创建的网络请求配置管理器和请求类,本申请的另一种请求调用方法过程可以如下:

第一步、创建网络请求管理器和请求类,并设置请求中的请求管理配置值;该请求管理配置值用于设置网络请求管理器中的配置属性,便于网络请求管理器创建网络请求;

第二步、利用网络请求管理器创建网络请求,根据请求参数创建网络请求;请求参数中包含配置值复制体的回调;

第三步、执行网络请求调用,判断该网络请求是否为对http请求管理类的修改请求,具体的,判断该网络请求中是否包含配置值处理参数;若是,进入第四步;若否,利用http请求管理类正常处理网络请求;

第四步、复制http请求管理类得到复制体,并利用复制体处理网络请求,将响应结果回调至网络请求中的配置值复制体的回调参数。如此,即实现了利用复制体处理修改请求的过程,且http请求管理类并未发生变更。但响应结果是复制体执行修改请求后得到的响应结果。

而在判断网络请求是否为对http请求管理类的修改请求时,可以判断该网络请求中是否存在configurationHandler参数。若存在,从configurationHandler参数获取得到configuration对象,作为http请求管理类。此后复制初始化时的configuration对象,处理网络请求时,使用configuration对象复制体。若不存在configurationHandler参数,意味着无需修改http请求管理类,可以直接使用默认的configuration对象处理网络请求。

可见,通过应用本实施例,即便是在高并发场景下存在频繁调用和对http请求管理类进行修改请求时,也无需修改变更http请求管理类的自身属性,避免由于http请求管理类的改变影响网络请求的请求响应结果。

以iOS系统为例,在发起请求时,其包含如下步骤:

第一步、创建NSURLSessionDataTask任务至data task对象,需要根据请求管理配置值先后执行请求序列化和响应序列化;

具体的,根据configurationHandler参数的configuration对象先后执行请求序列化和响应序列化,此后配置网络请求所需参数,包含请求类型,根据RequestMethod进行配置,根据URLstring配置接口,根据configuration对象的头部得到请求头,根据网络请求的上传进度uploadProgress配置网络请求的上传进度,以及设置网络请求回调成功与否时的回调对象。若回调成功,将回调结果通过请求结果处理responseHandler给到Response文件。

第二步、配置IOS网络请求所需要的参数,包含请求类型和接口,以及根据请求管理配置值得到的上传进度和结果回调等。

此后是否发起网络请求,需要根据请求管理配置值中的配置值处理参数决定。具体的,可以根据网络请求中的configurationHandler参数,得到configuration对象,根据configuration对象中的requestHandler参数的属性进行判断。若确认发起网络请求,可执行网络请求的发起,即data Task resume,否则取消发起网络请求,执行data Taskcancel。

若发起网络请求,根据configuration对象中的responseHandler属性返回至Response文件。

可见,本实施例对每个网络请求实现了统一的基础配置;此外,每个网络请求也可网络请求配置管理器进行参数配置,实现网络请求的独立配置,能够处理高并发状态下的对http请求管理类的调用请求和修改请求,可拓展性强,便于移植到其他ios项目中。

下面对本申请实施例提供的一种请求调用系统进行介绍,下文描述的请求调用系统与上文描述的请求调用方法可相互对应参照。

参见图2,图2为本申请实施例所提供的一种请求调用系统结构示意图,本申请还提供一种请求调用系统,包括:

请求接收模块,用于接收网络请求;

请求判断模块,用于判断所述网络请求是否为对http请求管理类的修改请求;

复制模块,用于所述请求判断模块的判断结果为是时,复制所述http请求管理类得到复制体;

请求处理模块,用于基于所述复制体处理所述修改请求,并在请求处理完成后返回请求响应结果。

基于上述实施例,作为优选的实施例,还包括:

配置文件创建模块,用于创建网络请求配置管理器,并设置所述网络请求配置管理器的配置参数;其中,所述配置参数包括请求头、请求序列化、返回序列化、请求前参数处理、请求结果处理和自定义配置中的任一项或者任意几项的组合;创建请求类,并利用所述网络请求配置管理器设置所述请求类中的请求管理配置值;其中,所述配置值包含所述复制体的回调参数。

基于上述实施例,作为优选的实施例,还包括:

请求创建模块,用于确定请求参数;利用所述网络请求配置管理器根据所述请求参数创建所述网络请求;所述请求参数至少包括请求类型、结果回调和配置值复制体的回调。

基于上述实施例,作为优选的实施例,还包括:

请求类型检测模块,用于判断所述网络请求是否为通用调用请求;若是,配置所述网络请求的配置值为默认值;若否,获取所述请求类中的请求管理配置值并添加至所述网络请求的自定义配置中。

基于上述实施例,作为优选的实施例,请求判断模块为用于判断所述网络请求中是否包含配置值处理参数的单元;并用于判断结果为是时,确认所述网络请求为对http请求管理类的修改请求。

基于上述实施例,作为优选的实施例,还包括:

响应结果回调模块,用于将所述请求响应结果添加至所述网络请求的结果回调中。

基于上述实施例,作为优选的实施例,还包括:

复制体删除模块,用于删除所述复制体,并保持所述http请求管理类为默认状态。

本申请还提供了一种计算机可读存储介质,其上存有计算机程序,该计算机程序被执行时可以实现上述实施例所提供的步骤。该存储介质可以包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

本申请还提供了一种服务器,可以包括存储器和处理器,所述存储器中存有计算机程序,所述处理器调用所述存储器中的计算机程序时,可以实现上述实施例所提供的步骤。当然所述服务器还可以包括各种网络接口,电源等组件。

本申请还提供了一种电子设备,参见图3,本申请实施例提供的一种电子设备的结构图,如图3所示,可以包括处理器1410和存储器1420。

其中,处理器1410可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器1410可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器1410也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器1410可以在集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器1410还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。

存储器1420可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器1420还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。本实施例中,存储器1420至少用于存储以下计算机程序1421,其中,该计算机程序被处理器1410加载并执行之后,能够实现前述任一实施例公开的由电子设备侧执行的请求调用方法中的相关步骤。另外,存储器1420所存储的资源还可以包括操作系统1422和数据1423等,存储方式可以是短暂存储或者永久存储。其中,操作系统1422可以包括Windows、Linux、Android等。

在一些实施例中,电子设备还可包括有显示屏1430、输入输出接口1440、通信接口1450、传感器1460、电源1470以及通信总线1480。

当然,图3所示的电子设备的结构并不构成对本申请实施例中电子设备的限定,在实际应用中电子设备可以包括比图3所示的更多或更少的部件,或者组合某些部件。

说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例提供的系统而言,由于其与实施例提供的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。

还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

相关技术
  • 一种用于酒盒成型机的上底板装置
  • 一种酒盒压盖检测装置
  • 一种用于测试限速器夹绳块力值的测试装置
  • 一种用于沙棘黄酮检测的试剂盒及沙棘黄酮检测的方法
  • 一种用于检测开启酒盒所需力值的装置
  • 一种用于检测开启酒盒所需力值的装置
技术分类

06120116525420