具体实施方式
下面结合本申请实施例中的附图对本申请实施例进行描述。
本申请的说明书和权利要求书及所述附图中的术语“第一”、“第二”、“第三”和“第四”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、***、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
在本说明书中使用的术语“部件”、“模块”、“***”等用于表示计算机相关的实体、硬件、固件、硬件和软件的组合、软件、或执行中的软件。例如,部件可以是但不限于,在处理器上运行的进程、处理器、对象、可执行文件、执行线程、程序和/或计算机。通过图示,在计算设备上运行的应用和计算设备都可以是部件。一个或多个部件可驻留在进程和/或执行线程中,部件可位于一个计算机上和/或分布在2个或更多个计算机之间。此外,这些部件可从在上面存储有各种数据结构的各种计算机可读介质执行。部件可例如根据具有一个或多个数据分组(例如来自与本地***、分布式***和/或网络间的另一部件交互的二个部件的数据,例如通过信号与其它***交互的互联网)的信号通过本地和/或远程进程来通信。
目前的网络请求方法中存在的问题如下:
1、当想从服务器获取请求数据时,对于发送给服务器的请求信息没有判断,而直接去请求服务器的相应接口,比如说请求接口需要token缓存,但在未获取到token缓存的情况下,向服务器发送请求信息必定是失败的。而且,当服务器接收到请求信息后,需要对请求信息进行相应的操作,返回失败的结果。此时的服务器进行了无效操作,造成了资源浪费。
2、在请求失败的时候,需要显示的内容因为没有结果而导致没有显示,让用户不清楚是什么原因导致请求失败,用户体验不好。
3、对于应用软件的某些请求信息,在向服务器请求失败的时候需要用户去重新触发请求,用户体验不好。
下面先对本申请涉及到的相关技术或专业术语进行简单的介绍以方便理解。
一、网络请求(Network request)
网络请求是请求服务器来获取数据或者传递数据,一次完整的网络请求过程大概需要经历域名解析、TCP的三次握手、建立TCP连接后发起HTTP请求、服务器响应HTTP请求、浏览器解析html代码,同时请求html代码中的资源(如js、css、图片等)、最后浏览器对页面进行渲染并呈现给用户。
二、进程间通信(Inter-Process Communication,IPC)
进程间通信就是在不同进程之间传播或交换信息,IPC是一组编程接口,让程序员能够协调不同的进程,使之能在一个操作***里同时运行,并相互传递、交换信息,这使得一个程序能够在同一时间里处理许多用户的要求。IPC提供了各种进程间通信的方法。在Linux C编程中有几种方法(1)半双工Unix管道,(2)FIFOs(命名管道),(3)消息队列,(4)信号量,(5)共享内存,(6)网络Socket。
三、鉴权(authentication)
鉴权是指验证用户是否拥有访问***的权利,传统的鉴权是通过密码来验证的。这种方式的前提是,每个获得密码的用户都已经被授权。在建立用户时,就为此用户分配一个密码,用户的密码可以由管理员指定,也可以由用户自行申请。这种方式的弱点十分明显:一旦密码被偷或用户遗失密码,情况就会十分麻烦,需要管理员对用户密码进行重新修改,而修改密码之前还要人工验证用户的合法身份。为了克服传统的鉴权方式的缺点,需要一个更加可靠的鉴权方式。目前的主流鉴权方式是利用认证授权来验证数字签名的正确与否。
鉴权包括两个方面:用户鉴权,网络对用户进行鉴权,防止非法用户占用网络资源;网络鉴权,用户对网络进行鉴权,防止用户接入了非法的网络,被骗取关键信息。
图1是本申请实施例提供的一种网络请求方法的***架构示意图,从图1可以看出,网络请求***100包括服务器101和电子设备102。其中,
电子设备102可以是具有数据处理或者数据收发能力的设备,可以是如主机、笔记本、个人数字处理(personal digital assistant,PDA)设备、具有无线通信功能的手持设备、计算设备或连接到无线调制解调器的其它处理设备、车载设备、可穿戴设备(也可以称为穿戴式智能设备),等等。还可以是是车载信息娱乐服务的提供端,可以实现对车辆数据的集成、管理,并提供导航、媒体播放、通信、辅助驾驶等车辆相关的应用服务,是具有数据处理、信息传输、通讯等功能的设备。
其中,电子设备102支持安卓(Android)***、iOS***、Linux操作***,Windows操作***、Unix操作***等等中的一个或者多个。
在电子设备102上运行网络请求管理102A和/或应用软件102B。其中,应用软件102B,可以是安装在电子设备102上的各种应用,比如账户应用、音乐应用、地图应用、收音机应用等等。
应用软件102B用于接收用户的操作,然后根据用户的操作向网络请求管理102A发送请求信息,由网络请求管理102A对请求信息进行判断,在判断该请求信息有效的情况下,向服务器101发送该请求信息。应用软件102B还用于根据网络请求管理102A处理的结果和/或服务器101返回的结果进行界面展示,展示的数据内容可以从服务器101获取,通过IPC技术传递一些参数给网络请求管理102A,然后等待网络请求管理102A的请求结果,并对请求结果进行相应的界面显示。
网络请求管理102A,可以是电子设备102的一个服务进程。可选地,网络请求管理102A可以是电子设备的一个服务进程。网络请求管理102A通过IPC技术接收应用软件102B发送的请求信息,并对请求信息的网络有效性、是否需要鉴权或者鉴权有效性进行判断,来确定是否可以向服务器101发送请求。在该请求信息符合判断条件的情况下,网络请求管理102A向服务器101发送请求信息。
可选的,网络请求管理102A向服务器101发送的请求(request)信息中包括以下一种或多种:url(请求的域名)、method(请求方式,比如post、get等)、header(主要是添加token等鉴权信息,有些请求不需要鉴权信息)、body(请求的参数),等等。
需要说明的是,本申请实施例同样适用于车载iOS***等其他车载***,以安卓(Android)***举例来说明。因为网络请求管理102A的进程和其他应用的其他进程相互传递消息时,由于不是同一个进程,所以需要使用安卓的IPC技术。在本申请实施例中,可以使用aidl技术来实现进程间通信。举例来说,应用软件102B通过IPC技术向网络请求管理102A发送请求信息,在aidl文件里定义了一个密码登录的方法,比如方法名login,参数由phone、password、callback对象。应用软件102B在调用login方法并且传入上述几个参数后,在网络请求管理102A收到包含login方法的信息时,网络请求管理102A会去进行相应的处理,将phone、password等参数放入请求信息的body里。
可选的,网络请求管理102A可以使用例如OkHttp方式对请求信息进行封装,然后将封装后的请求信息向服务器101发送。并且,将来自服务器的请求信息的请求结果向应用软件102B发送。
可选的,网络请求管理102A可以是电子设备里的一个服务进程,该服务进程可以在监听电子设备102开机的广播“boot_completed”时启动。或者是其他进程去启动这个服务进程,也即电子设备102里的其他应用(比如音乐应用、地图应用等等)在调用进程的时候,触发网络请求管理102A的服务进程的启动。或者,可以在登录账户的时候触发网络请求管理102A的服务进程的启动。
需要说明的是,其他进程在被调用前需要成功绑定网络请求管理102A的服务进程。其中,绑定上述服务进程的方法可以是安卓(Android)类方法,比如说bindServiceAsUser,传递名和action。当等待绑定服务的ServiceConnection回调并且是connected状态时,说明绑定成功。
服务器101,是具有数据处理能力和数据收发能力的设备,可以是实体设备如主机、机架式服务器、刀片式服务器,也可以是虚拟设备如虚拟机、容器等。进一步的,服务器101可以是一个服务器,也可以是多个服务器组成的服务器集群。服务器101用于接收来自电子设备102(具体是网络请求管理102B)的请求信息,按照电子设备102的接口进行相应的功能整理,并根据请求信息得到请求结果,将请求信息的请求结果向电子设备102发送。
可以理解的是,图1中的***架构只是本申请实施例中的一种示例性的实施方式,本申请实施例中的***架构包括但不仅限于以上***架构。
图2A是本申请实施例提供的一种网络请求方法的流程示意图,该方法包括但不限于如下步骤:
步骤S200,应用软件向网络请求管理发送请求信息。
具体地,应用软件可以是安装在电子设备上的各种应用,比如账户应用、音乐应用、地图应用、收音机应用等等。电子设备安装在电子设备上,是车载信息娱乐服务的提供端,可以实现对车辆数据的集成、管理,并提供导航、媒体播放、通信、辅助驾驶等车辆相关的应用服务,是具有数据处理、信息传输、通讯等功能的设备。
请参见图2B,图2B是本申请实施例提供的一种网络请求方法的判断流程示意图,当用户想使用应用软件来满足某些需求时,比如通过电子设备上的音乐应用来听歌、地图应用来导航时,首先需要登录音乐应用或者地图应用。此时应用软件可以通过IPC技术将包含上述登录需求的请求信息向网络请求管理发送。举例来说,应用软件通过IPC技术向网络请求管理发送请求信息,在aidl文件里定义了一个密码登录的方法,比如方法名login,参数有phone、password、callback对象。应用软件在调用login方法并且传入上述几个参数后,向网络请求管理发送。
步骤S201,网络请求管理对请求信息的网络有效性或者是否要被鉴权或者鉴权有效性进行判断。
具体地,请参见图2B,从图2B可以看出在网络请求管理接收到请求信息后,基于来自应用软件的请求信息,判断请求信息的网络有效性,以得到第一判断结果。以安卓***举例来说,网络请求管理获取安卓***服务ConnectivityManager,通过ConnectivityManager获取生成该请求信息的应用软件的网络信息(NetworkInfo),获取方式可以是ConnectivityManager的getNetworkInfo方法,通过该方法的TYPE_WIFI、TYPE_MOBILE、TYPE_ETHERNET,分别获取相应的Wifi(无线网)、Mobile(移动数据)、Ethernet(以太网)的网络信息。
通过NetworkInfo的isConnected方法获得当前应用软件的连接状态,若Wifi、Moblie、Ethernet这三个连接状态中有任意一个是连接的,那么说明该应用软件与网络是连接,则可以表明该应用软件发送的请求信息的网络是有效的,得到第一判断结果为请求信息的网络是有效的。
若Wifi、Moblie、Ethernet这三个连接状态都不是连接的,说明该应用软件与网络是没有连接,则可以表明该应用软件发送的请求信息的网络是无效的,得到第一判断结果为请求信息的网络是无效的。
请参见图2B,从图2B可以看出,在第一判断结果为请求信息的网络是无效的情况下,向应用软件发送第一失败信息。可选的,网络请求管理可以通过IPC传递过来的Callback对象的fail方法向应用软件发送第一失败信息,第一失败信息例如可以是“无网络”、“请连接网络”等信息,然后应用软件可以对第一失败信息进行界面弹框提示。用户可以通过界面显示的第一失败信息得到请求失败的原因,从而进行对应处理。
请参见图2B,从图2B可以看出,在第一判断结果为请求信息的网络是有效的情况下,判断请求信息是否要被鉴权,得到第二判断结果。可选的,网络请求管理可以通过请求信息中的布尔(boolean)型参数来判断请求信息是否要被鉴权。若该boolean型参数是ture,则第二判断结果为请求信息需要被鉴权;若该boolean型参数是false,则第二判断结果为请求信息不需要被鉴权。
请参见图2B,从图2B可以看出,在第二判断结果为请求信息不要被鉴权的情况下,网络请求管理向服务器发送上述请求信息。可选的,网络请求管理将请求信息通过OkHttp框架进行封装后向服务器发送。
请参见图2B,从图2B可以看出,在第二判断结果为请求信息要被鉴权的情况下,判断请求信息的鉴权有效性,以得到第三判断结果。可选的,网络请求管理可以通过是否有token缓存来判断请求信息的鉴权有效性,如果没有缓存,可以说明发送该请求信息的应用软件没有登录,或者在应用软件发送其他请求后,服务器反馈的失败结果而导致缓存被清除,则表示第三判断结果是该请求信息的鉴权是无效的。如果有缓存,可以说明发送该请求信息的应用软件处于登录状态中,则表示第三判断结果为请求信息的鉴权是有效性的。
请参见图2B,从图2B可以看出,在第三判断结果为请求信息的鉴权是无效的请求下,网络请求管理可以通过callback的fail方法向应用软件发送第二失败信息,第二失败信息可以是“请先登录账户”等信息,然后应用软件可以对第二失败信息进行界面弹框提示。用户可以通过界面显示的第二失败信息得到请求失败的原因,从而进行对应处理。
请参见图2B,从图2B可以看出,在第三判断结果为请求信息的鉴权是有效的请求下,网络请求管理向服务器发送上述请求信息。可选的,网络请求管理将请求信息通过OkHttp框架进行封装后向服务器发送。
步骤S202,服务器根据请求信息生成请求结果。
具体地,服务器在收到来自网络请求管理发送的请求信息后,对请求信息进行一些逻辑操作以生成请求结果,然后将请求结果向网络请求管理发送。可选的,通过OkHttp框架的callback的回调方法来将请求结果向网络请求管理发送。其中,在请求结果中包括请求数据,请求数据包括需要从服务器获取的相关数据,比如说登录信息等等。
步骤S203,网络请求管理对请求结果进行判断。
具体地,网络请求管理通过OkHttp框架的callback的回调方法对请求结果进行判断,如果是on Failure回调则表明请求结果是失败,则应用软件的请求是失败的;如果是onResponse回调表示请求结果是成功,则表明应用软件的请求是成功的。
请参见图2B,从图2B可以看出,若请求结果是失败的,网络请求管理通过IPC传递过来的Callback对象的fail方法将服务器返回的请求结果的失败原因向应用软件发送,比如失败原因可以是“密码错误”或者“账户名错误”,然后应用软件可以对失败信息进行界面弹框提示。
请参见图2B,从图2B可以看出,若请求结果是成功的,网络请求管理通过IPC技术传递过来的Callback的success方法将服务器返回的请求结果的请求数据向应用软件发送,应用软件接收到后做相应的界面变化操作。其中,请求数据可以包括json内容。
需要说明的是,上述请求信息可以是同步的请求信息,同步的请求信息是在用户触发请求后需要得到请求结果的,比如说登录请求。
可以看出,通过对来自应用软件的请求信息的网络有效性、是否要被鉴权或者鉴权有效性进行判断,在满足判断条件的情况下可以认为该请求信息是有效请求,然后将请求信息向服务器发送来获取请求结果。可以减少服务器对无效请求的处理,提高处理效率。在不满足判断条件没有向服务器发送请求信息的情况下,可以生成失败信息,由应用软件显示失败信息。因此用户可以得知请求失败的原因,并进行相应的处理。
在另一个实施例中,请再参见图2A,图2A是本申请实施例提供的一种网络请求方法的流程示意图。该方法包括但不限于如下步骤:
步骤S200,应用软件向网络请求管理发送请求信息。
具体地,在用户登录应用软件后,请求信息可以基于预设条件的满足而被生成,比如说用户启动并注册电子设备的某个应用软件后,在该应用软件收到开机的信息或者登录了账户后,可以基于开机状态或者登录状态自动生成请求信息,然后再将请求信息向网络请求管理发送,由网络请求管理向服务器发送该请求信息来获取相应的请求结果。
可选的,应用软件可以通过IPC技术与网络请求管理进行通信,将请求信息传递给网络请求管理。
步骤S201,网络请求管理对请求信息的网络有效性或者是否要被鉴权或者鉴权有效性进行判断。
具体地,网络请求管理在接收来自应用软件发送的请求信息后可以将请求信息存储到请求列表中。可选的,可以以Map集合的方式存储请求信息,也即key是请求信息的方法名,value是请求信息的内容,其中,value可以是由Okttp框架组成的内容。
请参见图2C,图2C是本申请实施例提供的另一种网络请求方法的判断流程示意图。从图2C可以看出在网络请求管理接收到请求信息后,基于来自应用软件的请求信息,判断请求信息的网络有效性,以得到第一判断结果。以安卓***举例来说,网络请求管理获取安卓***服务ConnectivityManager,通过ConnectivityManager获取生成该请求信息的应用软件的网络信息,获取方式可以是ConnectivityManager的getNetworkInfo方法,通过该方法的TYPE_WIFI、TYPE_MOBILE、TYPE_ETHERNET,分别获取相应的Wifi(无线网)、Moblie(移动网络)、Ethernet(以太网)相应的网络信息(NetworkInfo)。
通过NetworkInfo的isConnected方法获得当前应用软件的连接状态,若Wifi、Moblie、Ethernet这三个的连接状态中任意一个是连接的,那么该应用软件与网络是连接,则可以表明该应用软件发送的请求信息的网络是有效的,第一判断结果为请求信息的网络是有效的。
若Wifi、Moblie、Ethernet这三个的连接状态都不是连接的,那么该应用软件与网络是没有连接,则可以表明该应用软件发送的请求信息的网络是无效的,第一判断结果为请求信息的网络是无效的。
请参见图2C,从图2C可以看出,在第一判断结果为请求信息的网络是无效的情况下,网络请求管理获取请求列表中存储的请求信息,重新返回判断请求信息的网络有效性。可选的,可以通过IPC的方法获取请求列表中的请求信息。举例来说,在请求信息的网络是无效的情况下,用户收到网络的提示后,完成了连接网络的操作从而可以更新网络信息,当重新判断请求信息的网络有效性时,根据更新后的网络信息可以得到请求信息的网络是有效的。
可选的,在第一预设时间内得到第一判断结果为请求信息的网络是无效的情况下,网络请求管理可以获取请求列表的中存储的请求信息,重新返回判断请求信息的网络有效性。或者,在第一预设时间内没有得到第一判断结果的情况下,可以认为请求失败,则网络请求管理获取请求列表的中存储的请求信息,重新返回判断请求信息的网络有效性。一般来说,第一预设时间可以为30秒。可以理解的是,网络请求一般会设定30秒超时,如果30秒内没有收到服务器返回的数据则可以表明请求失败。
请参见图2C,从图2C可以看出,在第一判断结果为请求信息的网络是有效的情况下,判断请求信息是否要被鉴权,得到第二判断结果。可选的,网络请求管理可以通过请求信息中的布尔(boolean)型参数来判断请求信息是否要被鉴权。若该boolean型参数是ture,则第二判断结果为请求信息需要被鉴权;若该boolean型参数是fale,则第二判断结果为请求信息不需要被鉴权。
请参见图2C,从图2C可以看出,在第二判断结果为请求信息不要被鉴权的情况下,网络请求管理向服务器发送该请求信息。可选的,将请求信息通过OkHttp框架进行封装后向服务器发送。
请参见图2C,从图2C可以看出,在第二判断结果为请求信息要被鉴权的情况下,判断请求信息的鉴权有效性,以得到第三判断结果。可选的,网络请求管理可以通过是否有token缓存来判断请求信息的鉴权有效性,如果没有缓存,可以说明发送该请求信息的应用软件没有登录,或者在应用软件发送其他请求后,服务器反馈的失败结果而导致缓存被清除,则表示第三判断结果是该请求信息的鉴权是无效的。如果有缓存,可以说明发送该请求信息的应用软件处于登录状态中,则表示第三判断结果为请求信息的鉴权是有效性的。
请参见图2C,从图2C可以看出,在第三判断结果为请求信息的鉴权是无效的请求下,网络请求管理获取请求列表中存储的请求信息。可选的,可以通过IPC的方法获取请求列表中的请求信息。当获取到请求信息后,可以在第二预设时间返回判断请求信息的网络有效性。可以理解的是,可能在第二预设时间内请求信息的网络有效性、是否需要被鉴权等相关信息会发生变化,所以在请求信息的鉴权是无效的情况下,可以返回到判断请求信息的网络有效性。
可选的,在获取到请求列表中的请求信息后,可以在第三预设时间返回判断请求信息是否要被鉴权(图2C未示意出)。可以理解的是,在对请求信息的网络有效性进行判断得到第一判断结果是请求信息的网络是有效的情况下,才可以对请求信息是否要被鉴权,以及鉴权有效性进行判断。所以在对请求信息的鉴权有效性进行判断得到第三判断结果是请求信息的鉴权是无效的情况下,在第三预设时间内可以认为该请求信息的网络是有效的,所以可以重新判断请求信息是否要被鉴权。可以理解的是,可能在第三预设时间内请求信息的网络有效性没有发生变化,但是是否需要被鉴权的相关信息会发生变化,所以在请求信息的鉴权是无效的情况下,可以返回到判断请求信息是否要被鉴权。
可选的,在获取到请求列表中的请求信息后,可以在第四预设时间返回判断请求信息的鉴权有效性(图2C未示意出)。可以理解的是,在对请求信息的网络有效性进行判断得到第一判断结果是请求信息的网络是有效的情况下,才可以对请求信息是否要被鉴权,以及鉴权有效性进行判断。所以当对请求信息的鉴权有效性进行判断得到第三判断结果是请求信息的鉴权是无效的情况下,在第三预设时间内可以认为该请求信息的网络是有效的,且是要被鉴权的,所以可以重新判断请求信息的鉴权有效性。可以理解的是,可能在第四预设时间内请求信息的网络有效性没有发生变化,以及是否需要被鉴权的相关信息也没有发生变化,所以在请求信息的鉴权是无效的情况下,可以重新判断请求信息的鉴权有效性。举例来说,在请求信息的鉴权是无效的情况下,用户收到登录的提示后,完成了登录操作从而可以更新鉴权信息,当重新判断请求信息的鉴权有效性时,根据更新后的鉴权信息可以得到请求信息的鉴权是有效的。
步骤S202,服务器根据请求信息生成请求结果。
具体地,服务器在收到来自网络请求管理的请求信息后,根据请求信息进行一些逻辑操作生成请求结果后,将请求结果向网络请求管理发送。可选的,通过OkHttp框架的callback的回调来将请求结果向网络请求管理发送。其中,在请求结果中包括请求数据,请求数据包括需要从服务器获取的相关数据,比如说歌曲信息、地图信息等等。
步骤S203,网络请求管理对请求结果进行判断。
具体地,网络请求管理通过OkHttp框架的callback的回调来对请求结果进行判断,如果是onFailure回调则表明请求结果是失败,则应用软件的请求是失败的;如果是onResponse回调表示请求结果是成功,则表明应用软件的请求是成功的。
从图2C可以看出,若请求结果是失败的,则网络请求管理通过IPC进程通信的方式获取请求列表中的请求信息,在第五预设时间返回判断请求信息的网络有效性。可选的,在第五预设时间内得到请求结果是失败的情况下,网络请求管理可以获取请求列表的中存储的请求信息,重新返回判断请求信息的网络有效性。或者,在第五预设时间内没有得到请求结果的情况下,可以认为请求失败,则网络请求管理获取请求列表的中存储的请求信息,重新返回判断请求信息的网络有效性。
可选的,在获取到请求列表中的请求信息后,可以在第六预设时间后返回判断请求信息是否要被鉴权(图2C未示意出)。
可选的,在获取到请求列表中的请求信息后,可以在第七预设时间后返回判断请求信息是否要被鉴权(图2C未示意出)。
可选的,在获取到请求列表中的请求信息后,可以在第八预设时间后返回判断请求信息的鉴权有效性(图2C未示意出)。
从图2C可以看出,若请求结果是成功的,网络请求管理将请求信息从请求列表中删除。并且,网络请求管理将请求结果的请求数据向应用软件发送。可选的,可以通过IPC的callback参数中的success方法将请求结果的请求数据向应用软件发送。
从图2C可以看出,当应用软件接收到请求结果的请求参数后,临时保存上述请求数据。当应用软件打开页面后,可以根据保存的请求数据直接在界面上显示,从而无需在用户进入应用软件的页面时再向服务器请求数据并等待更新页面,提高了用户的使用体验。
需要说明的是,第一预设时间、第二预设时间、第三预设时间、第四预设时间、第五预设时间、第六预设时间、第七预设时间和第八预设时间之间可以相同,也可以不同,可以根据实际情况和实际需要进行设置,本申请实施例不做任何限制。
需要说明的是,上述请求信息可以是异步的请求信息,异步的请求信息可以是应用软件的后台请求。
可以看出,将来自应用软件的请求信息存储到请求列表中,然后对请求信息的网络有效性、是否要被鉴权或者鉴权有效性进行判断,在满足判断条件的情况下可以认为该请求信息是有效请求,然后将请求信息向服务器发送来获取请求结果。可以减少服务器对无效请求的处理,提高处理效率。在不满足判断条件没有向服务器发送请求信息的情况下,可以通过获取请求列表中存储的请求信息自动触发重新请求直到请求成功,不需要用户的手动操作即可重新触发请求。当应用软件打开页面后,可以根据保存的请求数据直接在界面上显示,从而无需在用户进入应用软件的页面时再向服务器请求数据并等待更新页面,提高了用户的使用体验。
请参见图3,图3是本申请实施例提供一种网络请求装置的结构示意图,网络请求装置30可以包括:第一判断单元301、第二判断单元302、第三判断单元303和获取单元304。第一判断单元301与第二判断单元302数据传输连接,第二判断单元302和第三判断单元303数据传输连接,第三判断单元303和获取单元304数据传输连接;其中,各个单元的详细描述如下。
第一判断单元301,用于基于来自应用软件的请求信息,判断请求信息的网络有效性,以得到第一判断结果;
第二判断单元302,用于在第一判断结果为请求信息的网络是有效的情况下,判断请求信息是否要被鉴权,以得到第二判断结果;
第三判断单元303,用于在第二判断结果为请求信息要被鉴权的情况下,判断请求信息的鉴权有效性,以得到第三判断结果;
获取单元304,用于在第三判断结果为请求信息的鉴权是有效的情况下,获取请求信息的请求结果。
在一种可能的实施方式中,第一判断单元301,还用于在第一判断结果为请求信息的网络是无效的情况下,经由应用软件显示第一失败信息。
在一种可能的实施方式中,第三判断单元303,还用于在第三判断结果为请求信息的鉴权是无效的情况下,经由应用软件显示第二失败信息。
在一种可能的实施方式中,请求信息基于预设条件的满足而被生成。
在一种可能的实施方式中,网络请求装置30还包括保存单元305,保存单元305和获取单元304数据传输连接,保存单元305用于获取请求信息,以使请求信息被保存至请求列表中。
在一种可能的实施方式中,第一判断单元301,还用于在第一判断结果为请求信息的网络是无效的情况下,获取请求列表中的请求信息,以便返回判断请求信息的网络有效性。
在一种可能的实施方式中,第三判断单元303,还用于在第三判断结果为请求信息的鉴权是无效的情况下,获取请求列表中的请求信息,以便返回判断请求信息的网络有效性。
在一种可能的实施方式中,第三判断单元303,还用于在第三判断结果为请求信息的鉴权是无效的情况下,获取请求列表中的请求信息,以便返回判断请求信息是否要被鉴权。
在一种可能的实施方式中,第三判断单元303,还用于在第三判断结果为请求信息的鉴权是无效的情况下,获取请求列表中的请求信息,以便返回判断请求信息的鉴权有效性。
在一种可能的实施方式中,获取单元304还用于基于请求结果为失败,获取请求列表中的请求信息,以便返回判断请求信息的网络有效性。
在一种可能的实施方式中,网络请求装置30还包括删除单元306,删除单元306和保存单元305数据传输连接,删除单元306用于基于请求结果为成功,请求信息从请求列表中被删除。
在一种可能的实施方式中,保存单元305还用于基于请求结果中的请求数据,保存请求数据;以及经由应用软件显示请求数据。
在一种可能的实施方式中,第二判断单元302,还用于在第二判断结果为请求信息不要被鉴权的情况下,获取请求信息的请求结果。
需要说明的是,各个单元的实现还可以对应参照图2A所示的方法实施例的相应描述,此处不再赘述。
请参见图4,图4是本申请实施例提供一种电子设备的结构示意图。如图4所示,电子设备400可包括:一个或多个处理器401、一个或多个存储器402以及一个或多个通信接口403。这些部件可通过总线404或者其他方式连接,图4以通过总线连接为例。其中:
通信接口403可用于电子设备400与其他通信设备,例如其他电子设备,进行通信。具体的,通信接口403可以是有线接口。
存储器402可以和处理器401通过总线404或者输入输出端口耦合,存储器402也可以与处理器401集成在一起。存储器402用于存储各种软件程序和/或多组指令或者数据。具体的,存储器402可以是只读存储器(read-only memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,RAM)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(ElectricallyErasable Programmable Read-Only Memory,EEPROM)、只读光盘(Compact Disc Read-Only Memory,CD-ROM)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器402可包括高速随机存取的存储器,并且也可包括非易失性存储器,例如一个或多个磁盘存储设备、闪存设备或其他非易失性固态存储设备。存储器402可以存储操作***(下述简称***),例如uCOS、VxWorks、RTLinux等嵌入式操作***。存储器402还可以存储网络通信程序,该网络通信程序可用于与一个或多个附加设备,一个或多个用户设备,一个或多个电子设备进行通信。存储器可以是独立存在,通过总线与处理器相连接。存储器也可以和处理器集成在一起。
其中,存储器402用于存储执行以上方案的应用程序代码,并由处理器401来控制执行。处理器401用于执行存储器402中存储的应用程序代码。
处理器401可以是中央处理器单元,通用处理器,数字信号处理器,专用集成电路,现场可编程门阵列或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本发明公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器也可以是实现确定功能的组合,例如包含一个或多个微处理器组合,数字信号处理器和微处理器的组合等等。
本申请实施例中,处理器401可用于读取和执行计算机可读指令。具体的,处理器401可用于调用存储于存储器402中的程序,用于执行以下操作:
基于来自应用软件的请求信息,判断请求信息的网络有效性,以得到第一判断结果;在第一判断结果为请求信息的网络是有效的情况下,判断请求信息是否要被鉴权,以得到第二判断结果;在第二判断结果为请求信息要被鉴权的情况下,判断请求信息的鉴权有效性,以得到第三判断结果;以及在第三判断结果为请求信息的鉴权是有效的情况下,获取请求信息的请求结果。
在一种可能的实施方式中,处理器401,还用于:在第一判断结果为请求信息的网络是无效的情况下,经由应用软件显示第一失败信息。
在一种可能的实施方式中,处理器401,还用于:在第三判断结果为请求信息的鉴权是无效的情况下,经由应用软件显示第二失败信息。
在一种可能的实施方式中,请求信息基于预设条件的满足而被生成。
在一种可能的实施方式中,处理器401,还用于:获取请求信息,以使请求信息被保存至请求列表中。
在一种可能的实施方式中,处理器401,还用于:在第一判断结果为请求信息的网络是无效的情况下,获取请求列表中的请求信息,以便返回判断请求信息的网络有效性。
在一种可能的实施方式中,处理器401,还用于:在第三判断结果为请求信息的鉴权是无效的情况下,获取请求列表中的请求信息,以便返回判断请求信息的网络有效性。
在一种可能的实施方式中,处理器401,还用于:在第三判断结果为请求信息的鉴权是无效的情况下,获取请求列表中的请求信息,以便返回判断请求信息是否要被鉴权。
在一种可能的实施方式中,处理器401,还用于:在第三判断结果为请求信息的鉴权是无效的情况下,获取请求列表中的请求信息,以便返回判断请求信息的鉴权有效性。
在一种可能的实施方式中,处理器401,还用于:基于请求结果为失败,获取请求列表中的请求信息,以便返回判断请求信息的网络有效性。
在一种可能的实施方式中,处理器401,还用于:基于请求结果为成功,请求信息从请求列表中被删除。
在一种可能的实施方式中,处理器401,还用于:基于请求结果中的请求数据,保存请求数据;以及经由应用软件显示请求数据。
在一种可能的实施方式中,处理器401,还用于:在第二判断结果为请求信息不要被鉴权的情况下,获取请求信息的请求结果。
需要说明的是,图4所示的电子设备400仅仅是本申请实施例的一种实现方式,实际应用中,电子设备400还可以包括更多或更少的部件,这里不作限制。关于电子设备400的具体实现可以参考前述图2A所示方法实施例中的相关描述,此处不再赘述。
本实施例还提供一种计算机存储介质,其中,该计算机存储介质存储用于电子数据交换的计算机程序,该计算机程序使得计算机执行本实施例中提供的方法实施例中记载的任一方法的部分或全部步骤,上述计算机包括电子设备。
本申请实施例还提供一种计算机程序产品,上述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,上述计算机程序可操作来使计算机执行如上述方法实施例中记载的任一方法的部分或全部步骤。该计算机程序产品可以为一个软件安装包,上述计算机包括电子设备。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可能可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
在本发明所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如上述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
上述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以为个人计算机、服务端或者网络设备等,具体可以是计算机设备中的处理器)执行本发明各个实施例上述方法的全部或部分步骤。其中,而前述的存储介质可包括:U盘、移动硬盘、磁碟、光盘、只读存储器(Read-Only Memory,缩写:ROM)或者随机存取存储器(Random Access Memory,缩写:RAM)等各种可以存储程序代码的介质。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,该流程可以由计算机程序来指令相关的硬件完成,该程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法实施例的流程。而前述的存储介质包括:ROM或随机存储记忆体RAM、磁碟或者光盘等各种可存储程序代码的介质。