CN108243229A - 请求处理方法及装置 - Google Patents

请求处理方法及装置 Download PDF

Info

Publication number
CN108243229A
CN108243229A CN201611223202.8A CN201611223202A CN108243229A CN 108243229 A CN108243229 A CN 108243229A CN 201611223202 A CN201611223202 A CN 201611223202A CN 108243229 A CN108243229 A CN 108243229A
Authority
CN
China
Prior art keywords
network request
request
network
retries
array
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201611223202.8A
Other languages
English (en)
Other versions
CN108243229B (zh
Inventor
王学波
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Gridsum Technology Co Ltd
Original Assignee
Beijing Gridsum Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Gridsum Technology Co Ltd filed Critical Beijing Gridsum Technology Co Ltd
Priority to CN201611223202.8A priority Critical patent/CN108243229B/zh
Publication of CN108243229A publication Critical patent/CN108243229A/zh
Application granted granted Critical
Publication of CN108243229B publication Critical patent/CN108243229B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer And Data Communications (AREA)
  • Telephone Function (AREA)

Abstract

本发明公开了一种请求处理方法及装置。其中,该方法包括:获取请求失败的多个网络请求;获取多个网络请求中的每一个网络请求对应的重试次数;重新发起每一个网络请求;判断多个网络请求中的每一个网络请求在对应的重试次数内是否请求成功;如果均请求成功则请求处理成功,否则请求处理失败。本发明解决了无法处理多个网络请求失败的技术问题。

Description

请求处理方法及装置
技术领域
本发明涉及信息处理领域,具体而言,涉及一种请求处理方法及装置。
背景技术
请求重试存在于很多的应用领域,请求重试是一种发生发送数据产生错误时的自我修复机制,其增加了用户交互体验上的友好性。伴随着互联网的高速发展,越来越多的应用开始融入互联网生态圈,几乎每一天我们都会与网络进行交互,从网络上获取我们所需要的信息。
但是,若在网络交互时,网络覆盖范围较小或遇到突发的网络故障,用户不能每时每刻都可以获取到流畅的网络,在这种情况下,如何保障网络应用能最大限度的为用户提供服务。如何提升用户的使用体验,是考验一个产品/应用是否好用的标志,这其中网络请求重试机制便是一种保障手段。
其中,在基于javascript语言的应用进行网络请求重试中,目前的主要方案是将网络请求封装在一个函数中,在网络请求失败时能重复调用该函数以达到多次尝试的目的。该方案在应对单个网络请求时能比较好的工作,但如果同时有多个网络请求遇到失败需要重试时这种方案就可能变得不够灵活。
针对上述无法处理多个网络请求失败的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种请求处理方法及装置,以至少解决无法处理多个网络请求失败的技术问题。
根据本发明实施例的一个方面,提供了一种请求处理方法,包括:获取请求失败的多个网络请求;获取所述多个网络请求中的每一个网络请求对应的重试次数;重新发起所述每一个网络请求;判断所述多个网络请求中的每一个网络请求在对应的重试次数内是否请求成功;如果均请求成功则请求处理成功,否则请求处理失败。
进一步地,重新发起所述每一个网络请求包括:将获取到的所述多个网络请求中的每一个网络请求均作为数组中的一个元素进行保存;遍历所述数组;根据遍历得到的所述数组中的元素重新发起所述每一个网络请求。
进一步地,判断所述每一个网络请求在对应的重试次数内是否请求成功包括:将所述每一个网络请求在对应的重试次数内是否请求成功的结果保存在另一个数组中;根据所述另一个数组中保存的内容判断是否请求成功。
进一步地,将所述每一个网络请求均作为所述数组中的一个元素进行保存包括:将每一个网络请求均生成为一个对象,其中,生成对象的类是预先定义的;将每个所述对象均作为所述数组中的一个元素进行保存。
进一步地,所述类包括如下接口:将所述网络请求作为对象添加的接口、对所述网络请求重新发起的接口。
进一步地,对于重新发起的每一个网络请求生成Promise对象;通过所述Promise对象重新发起所述每一个网络请求,并判断所述每一个网络请求在对应的重试次数内是否请求成功。
进一步地,通过所述Promise对象判断所述每一个网络请求在对应的重试次数内是否请求成功包括:通过所述Promise对象中的then方法处理所述每一个网络请求在对应的重试次数内的请求成功或者失败的逻辑。
根据本发明实施例的另一方面,还提供了一种请求处理装置,包括:第一获取单元,用于获取请求失败的多个网络请求;第二获取单元,用于获取所述多个网络请求中的每一个网络请求对应的重试次数;发起单元,用于重新发起所述每一个网络请求;判断单元,用于判断所述多个网络请求中的每一个网络请求在对应的重试次数内是否请求成功;如果判断单元判断出均请求成功则请求处理成功,否则请求处理失败。
进一步地,所述发起单元包括:第一保存模块,用于将获取到的所述多个网络请求中的每一个网络请求均作为数组中的一个元素进行保存;遍历模块,用于遍历所述数组;发起模块,用于根据遍历得到的所述数组中的元素重新发起所述每一个网络请求。
进一步地,所述判断单元包括:第二保存模块,用于将所述每一个网络请求在对应的重试次数内是否请求成功的结果保存在另一个数组中;第一判断模块,用于根据所述另一个数组中保存的内容判断是否请求成功。
通过上述实施例,可以在多个网络请求失败时,获取多个网络请求,以及该多个网络请求中每一个网络请求对应的重试次数,在获取到多个网络请求和对应的重试次数后,可以重新发起每一个网络请求,并判断每一个网络请求在对应的重试次数内是否请求成功,若是,则可以判断出网络请求处理成功,若否,则可以判断出网络请求处理失败。通过本发明实施例,可以对每一个请求失败网络重新发起请求,在重新发起请求的过程中,设定重新发起请求的次数,在有限的重新请求次数内,处理网络请求,可以使得多个网络请求失败时,及时处理网络请求失败,并返回网络请求处理结果,本发明实施例解决了无法处理多个网络请求失败的技术问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的一种可选的请求处理方法的流程图一;
图2是根据本发明实施例的一种可选的请求处理方法的流程图二;
图3是根据本发明实施例的另一种可选的请求处理装置的结构图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
术语解释:
Promise概念:Promise是一个对象,用来传递异步操作的消息。它代表了某个未来才会知道结果的事件(通常是一个异步操作),并且这个事件提供统一的API(ApplicationProgramming Interface,即应用程序接口),可供进一步处理。
Promise对象有以下两个特点。
(1)对象的状态不受外界影响。Promise对象代表一个异步操作,有三种状态:Pending(进行中)、Resolved(已完成,又称Fulfilled)和Rejected(已失败)。只有异步操作的结果,可以决定当前是哪一种状态,任何其他操作都无法改变这个状态。
(2)一旦状态改变,就不会再变,任何时候都可以得到这个结果。Promise对象的状态改变,只有两种可能:从Pending变为Resolved和从Pending变为Rejected。只要这两种情况发生,状态就凝固了,不会再变了,会一直保持这个结果。就算改变已经发生了,再对Promise对象添加回调函数,也会立即得到这个结果。这与事件(Event)完全不同,事件的特点是,如果错过了,再去监听,是得不到结果的。
根据本发明实施例,提供了一种请求处理的方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图1是根据本发明实施例的一种可选的请求处理方法的流程图一,如图1所示,该方法包括如下步骤:
步骤S102,获取请求失败的多个网络请求;
步骤S104,获取多个网络请求中的每一个网络请求对应的重试次数;
步骤S106,重新发起每一个网络请求;
步骤S108,判断多个网络请求中的每一个网络请求在对应的重试次数内是否请求成功。若是,执行步骤S110,若否,执行步骤S112。
步骤S110,得出网络请求处理成功;
步骤S112,得出网络请求处理失败。
通过上述实施例,可以在多个网络请求失败时,获取多个网络请求,以及该多个网络请求中每一个网络请求对应的重试次数,在获取到多个网络请求和对应的重试次数后,可以重新发起每一个网络请求,并判断每一个网络请求在对应的重试次数内是否请求成功,若是,则可以判断出网络请求处理成功,若否,则可以判断出网络请求处理失败。通过本发明实施例,可以对每一个请求失败网络重新发起请求,在重新发起请求的过程中,设定重新发起请求的次数,在有限的重新请求次数内,处理网络请求,可以使得多个网络请求失败时,及时处理网络请求失败,并返回网络请求处理结果,本发明实施例解决了无法处理多个网络请求失败的技术问题。
可选的,上述实施例的执行主体可以包括服务器或者移动终端,下面以移动终端为例,但并不限于此,本申请的实施例执行主体可以是一种或多种。
可选的,可以通过用户的移动终端(例如,手机、电脑)来本申请的实施例做出,可以在移动终端中安装一种或多种应用,在用户打开应用并操作时,可以产生一个或多个网络请求,该多个网络请求可以与服务器进行交互,用户可以通过应用获取到多种信息,在用户通过应用产生网络请求时,移动终端可以向服务器发送多个信息。在本申请实施例,用户可以打开一个或多个应用,在用户打开应用时,移动终端可以产生多个网络请求,该多个网络请求可以是先后产生的,即串发网络请求,也可以是同时产生的多个网络请求,即并发网络请求。
可选的,用户可以通过多个网络请求查看不同的信息,例如,用户可以打开不同网页,浏览网页提供的文本(例如,新浪)、图片等信息,也可以打开视频网站(例如,爱奇艺),观看不同的视频信息。用户可以通过操控移动终端在同一时间段内,打开不同的应用,查看不同的信息,这时,可以产生多个不同的网络请求。
其中,网络请求可以是成功的,也可以是失败的。例如,若用户同时打开多个网页,移动终端产生不同的网络请求,其中,可以有一个或多个网络请求成功,也可以有一个或多个网络请求失败。本申请实施例可以对多个请求失败的网络进行处理。
可选的,在多个网络请求失败时,移动终端可以通过步骤S102的技术方案,获取请求失败的多个网络请求,移动终端可以将该多个网络请求存入存储器中,在移动终端获取到多个请求失败的网络请求后,可以再获取多个网络请求中的每一个网络请求对应的重试次数,其中,每一个请求失败的网络都可以有一个对应的重试次数。
可选的,移动终端可以在一定时间段内(例如,20秒)检测一次网络请求,将一个或多个请求失败的网络检测出来,并存储在存储器,其存储的时间可以是短暂的,即可以在移动终端处理该多个网络请求失败后,将该存储的多个网络删除,进而存储下一个时间间隔内请求失败的网络。
可选的,移动终端可以将多个请求失败的网络编号,对每一个请求失败的网络都可以设置一个重试次数,该重试次数可以是固定的,也可以是随机的,也可以是根据网络请求的优先权进行相应的重试次数确定。其中,网络请求的优先权可以是根据移动终端检测到的用户在每一个请求失败的网络上点击(或触摸)的次数确定的,可以将用户点击该网络的次数进行排列,得出网络优先级,以用户点击次数多的为优先级高的网络。例如,用户点击请求网络1为3次,点击请求网络2为1次,则确定请求网络次数1为优先级高的网络。在确定出请求失败网络的优先级后,可以给请求失败网络优先级高的网络分配较多的重试次数。
可选的,可以给多个请求失败的网络分配相同的重试次数,该重试次数是有限个,例如,给多个请求失败的网络分配4次重试次数。
另一种可选的实施方式,可以在获取到多个请求失败的网络和重试次数后,可以执行步骤S106的技术方案,重新发起每一个网络请求,即可以对每一个请求失败的网络重新发起网络请求,其发起网络请求的次数是根据重试次数确定的,重试次数和重新发起网络请求的次数可以是相同的。
对于上述实施例,可以在重新发起每一个网络请求后,判断多个网络请求中的每一个网络请求在对应的重试次数内是否请求成功,即在每一次重试的网络请求中,判断出网络请求是否成功,其中,多个请求失败网络重新发起请求可以是同时发起的网络请求。在多个请求失败网络重新发起请求可以是同时发起的网络请求时,移动终端可以判断多个并发的网络请求中的每一个网络请求是否成功,若判断出其中的网络请求成功时,得出该网络请求处理成功的信息,若判断出网络请求失败时,可以得出网络请求处理失败的信息。
在本发明实施例中,在判断网络请求重试是否成功时,若判断出其中的网络请求成功,则可以将该请求网络的编号记录下来,或者,将该请求网络删除,该网络的重试次数可以归零。若判断出其中的网络请求失败,可以将该网络记录,在记录请求失败的网络后,可以将该网络的请求重试次数减去一个,若检测该网络的重试次数到零时,可以判断该网络的请求重试是否成功,若判断该多个请求失败的网络在重试后,全部网络都请求重试成功,则可以判断出网络并未出现问题,用户可以继续进行其它的网络请求操作。若判断出该多个请求失败的网络在重试后,有一个或多个请求重试的网络在重试次数内仍然请求失败,则可以判断出该移动终端的网络出现了问题,可以向移动终端的显示界面显示出网络故障的显示框,用户可以通过该显示框知道网络出现了故障。
可选的,重新发起每一个网络请求时可以包括:将获取到的多个网络请求中的每一个网络请求均作为数组中的一个元素进行保存,即可以用一个数组保存该多个请求失败的网络,可选的,可以将每一个网络请求均生成为一个对象,其中,生成对象的类是预先定义的,该预先定义可以是将每一个请求网络编号,也可以是编写为对应的字母。在将每一个网络请求均生成为一个对象后,可以将每个对象均作为数组中的一个元素进行保存。即每一个对象对应了一个元素。
可选的,在获取到数组中的多个元素后,可以遍历数组,在遍历过数组后,可以根据遍历得到的数组中的元素重新发起每一个网络请求。本发明实施例中的数组元素中的对象代表了每一个需要重新请求的网络,在遍历数组后,可以将多个请求重试的网络对应的元素找到,并根据得到的元素在有限的次数内向网络重新发起请求。
另一种可选的实施方式,在判断每一个网络请求在对应的重试次数内是否请求成功包括:可以将每一个网络请求在对应的重试次数内是否请求成功的结果保存在另一个数组中,该结果包括网络请求重试成功或者失败。在将网络请求重试的结果保存到数组后,移动终端可以在该数组内得出网络请求重试是否成功,即根据另一个数组中保存的内容判断是否请求成功。
对于上述实施例,数组中的类可以包括如下接口:将网络请求作为对象添加的接口、对网络请求重新发起的接口。即可以将多个网络请求作为对象添加到一个数组中,也可以将多个重新发起请求的网络作为对象添加入另一个数组内。
可选的,可以对于重新发起的每一个网络请求生成Promise对象,该Promise对象可以预先设定一种格式,对于每一个重新发起请求的网络可以生成不同Promise对象,也可以生成在同一个Promise对象中。在生成Promise对象后,可以通过Promise对象重新发起每一个网络请求,并判断每一个网络请求在对应的重试次数内是否请求成功。若成功,重试次数可以归零,则判断出该网络请求重试处理成功,若失败,则可以判断本次网络请求失败,重试次数减一,判断出重试次数是否为零,若判断出重试次数为零,则可以判断出该网络请求失败。
另一种可选的,通过Promise对象判断每一个网络请求在对应的重试次数内是否请求成功包括:通过Promise对象中的then方法处理每一个网络请求在对应的重试次数内的请求成功或者失败的逻辑。其中,该then可以是在Promise对象所在的构造函数中设定的处理方法,通过then方法,可以返回网络请求在重试次数内的结果,该结果包括网络请求重试成功或者网络请求失败。可选的,可以在then方法中设定两个匿名函数作为参数,与Promise对象生成的结果对应,这里的两个函数可以分别代表不同的结果,例如,可以将两个函数设为函数A、函数B,其中,函数A代表成功,函数B代表失败,在返回结果时,可以返回这两个函数,通过读取不同的网络请求的函数,即可以判断出网络请求成功还是失败。
本发明可以实现针对多个并发网络请求重试的方案,本发明实施例可以针对每个请求单独设定其重试的次数,当某个请求重试到达上限次数后仍没有成功时则整个请求将返回失败,也就是说只有在所有请求在规定的请求重试次数范围内都获得成功时,整个并发请求才算成功。这种设定是符合现实意义的,在所有的请求都成功时才代表移动终端的应用的网络互动处于一种正常的状态,才可以正常服务于用户。
下面是根据本发明的一种可选的请求处理方法的实施例。
本发明实施例是基于Promise/A+规范,该Promise/A+规范是为了统一异步编程中的接口,任何实现了Promise/A+规范的promise库均可以用于实现本发明实施方式,其中,promise库可以是预先设定的,主要包括(但不限于)以下几种Promise库:q、bluebird、es6promise、jQuery.Deffered对象,其中,q是一种基于JavaScript的promise库,bluebird是JS语言中的函数,es6是ECMAScript6,jQuery.Deffered对象中可以引入promise对象。jQuery.Deffered对象实现的方案不服务promise/A+规范,但通过该对象也可以实现本发明实施方案。
图2是根据本发明实施例的一种可选的请求处理方法的流程图二,如图2所示,该方法包括如下步骤:
步骤S201,约定接口及参数。
本发明实施例是基于javascript面向对象的思想,将网络请求重试操作封装为一个伪类,可以将该伪类命名为Request。
其中,Request可以有如下接口:
1)添加请求对象(为方便说明,可以将该接口命名为add)。
2)启动请求操作(为方便说明,可以将该接口命名为start)。
在约定接口及参数时,可以用代码展示,其中代码可以为:
该代码是用于定义接口reqs以及添加请求对象add和启动请求操作start,该reqs是一个数组,可以用于存储请求重试的网络。
其中,添加请求对象add方法接口一个参数req,该参数约定可以是如下代码:
对于上述的代码,可以是用于定义添加请求对象add方法接口的一个参数req。
步骤S203,添加请求对象。
其中,该添加请求对象的具体步骤如下:
步骤11,判断req是否为对象类型。
若是,不用抛出错误异常,若否,执行步骤12。
步骤12,抛出错误异常。
步骤13,判断req对象是否包含exec属性,且该属性的类型是Function。
若是,不用抛出错误异常,若否,执行步骤14。
步骤14,抛出错误异常。
步骤15,判断req对象的times属性是否为有效的整数,如果否,则赋一个默认值(具体默认值为多少可视业务逻辑而定),若是,可以直接使用该属性参数。
步骤16,将req对象添加到reqs数组中。
步骤17,返回this对象,结束。
通过上述实施方式,可以添加一个请求对象。
步骤S205,启动请求操作。
在该请求操作中,以start方法做出说明,该请求操作包括如下步骤:
步骤21,生成Promise对象。
Promise对象的格式可以是如下代码:
newPromise(function(resove,reject){
/*业务逻辑*/
});
其中,resove可以指示Promise对象的成功状态,reject可以指示Promise对象的失败状态。
其中,Promise中的具体实现方式是整个请求重试的核心,该请求重试的具体步骤如下:
步骤2101,获取reqs数组的长度,并保存在变量n中。
步骤2102,初始化一个空的数组results,该数组results用于保存请求重试的结果。
步骤2103,遍历reqs数组,并将每个req在数组中索引记为变量index。
在遍历reqs数组后,可以对遍历出来的每个req对象重复执行步骤2104至步骤2108的操作。
步骤2104,判断req对象的context属性是否为Object类型。若否,则可以将context赋值null,该null代表了空属性,即没有;若是,则可以将context赋值为req对象。Object可以是数组的一个类。
步骤2105,判断req对象的args属性是否为Array类型。如果否,则赋值为空,如果是,则可以将该req对象赋值给Array中,该Array可以为数组、阵列。
步骤2106,调用req对象的exec请求体,保存返回结果到变量promise中,该步骤的代码可以如下所示:
var promise=req.exec.apply(context,args)。
步骤2107,判断promise变量是否包含then方法,如果否,则抛出异常,如果是,则可以判断该次请求成功。
步骤2108,通过promise的then方法注册回调成功或失败的方法。
其中,该promise的then方法注册回调成功或失败方法的代码可以如下所示:
promise的then方法中注册的执行成功可以如步骤2109到步骤2111所示:
步骤2109,对变量n执行减1操作。
步骤2110,将results数组对应index索引处的值赋值为_success的结果res。
步骤2111,判断变量n是否为0,如果是,则执行resolve(results)操作并返回,如果否,则返回执行步骤2109。
promise的then方法中注册的执行失败的逻辑如步骤2112至步骤2114所示:
步骤2112,对req.times属性执行减1操作。
步骤2113,判断req.times属性是否为0,如果是,则执行reject(null)操作并返回,如果否,则执行步骤2114。
步骤2114对该req对象重复执行步骤2104至步骤2108所示操作。
到这里,该方案生成Promise对象。
步骤22,返回生成的promise对象。
通过上述实施例,可以搭建可以多个并发请求重试的可复用模块。该模块的具体代码可以如下所示:
其中,生成一个Request对象的代码可以是
var request=new Request();
添加请求对象,启动请求操作,并注册成功和失败的监听方法。
在上述实施例中,可以添加多个请求对象。
通过本发明实施例,可以实现一种基于promise/A+规范的网络请求重试机制,可以实现对单个或多个网络请求进行失败重试,提高移动终端的应用的稳定性。
该发明主要应用于基于javascript开发的web应用和混合app应用中。
图3是根据本发明实施例的另一种可选的请求处理装置的结构图,如图3所示,该装置包括:第一获取单元31,用于获取请求失败的多个网络请求;第二获取单元32,用于获取多个网络请求中的每一个网络请求对应的重试次数;发起单元33,用于重新发起每一个网络请求;判断单元34,用于判断多个网络请求中的每一个网络请求在对应的重试次数内是否请求成功;如果判断单元34判断出均请求成功时,则请求处理成功,否则请求处理失败。
通过上述实施例,可以在多个网络请求失败时,通过第一获取单元31获取多个网络请求,以及通过第二获取单元32该多个网络请求中每一个网络请求对应的重试次数,在获取到多个网络请求和对应的重试次数后,可以通过发起单元33重新发起每一个网络请求,并通过判断单元34判断每一个网络请求在对应的重试次数内是否请求成功,若是,则可以判断出网络请求处理成功,若否,则可以判断出网络请求处理失败。通过本发明实施例,可以对每一个请求失败网络重新发起请求,在重新发起请求的过程中,设定重新发起请求的次数,在有限的重新请求次数内,处理网络请求,可以使得多个网络请求失败时,及时处理网络请求失败,并返回网络请求处理结果,本发明实施例解决了无法处理多个网络请求失败的技术问题。
可选的,发起单元包括:第一保存模块,用于将获取到的多个网络请求中的每一个网络请求均作为数组中的一个元素进行保存;遍历模块,用于遍历数组;发起模块,用于根据遍历得到的数组中的元素重新发起每一个网络请求。
另一种可选的实施方式,判断单元包括:第二保存模块,用于将每一个网络请求在对应的重试次数内是否请求成功的结果保存在另一个数组中;第一判断模块,用于根据另一个数组中保存的内容判断是否请求成功。
可选的,第一保存模块包括:第一生成模块,用于将每一个网络请求均生成为一个对象,其中,生成对象的类是预先定义的;第一保存子模块,用于将每个对象均作为数组中的一个元素进行保存。
另一种可选的实施方式,类包括如下接口:将网络请求作为对象添加的接口、对网络请求重新发起的接口。
另一种可选的实施方式,第二生成模块,用于对于重新发起的每一个网络请求生成Promise对象;第二判断模块,用于通过Promise对象重新发起每一个网络请求,并判断每一个网络请求在对应的重试次数内是否请求成功。
可选的,第二判断模块包括:处理模块,用于通过Promise对象中的then装置处理每一个网络请求在对应的重试次数内的请求成功或者失败的逻辑。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (10)

1.一种请求处理方法,其特征在于,包括:
获取请求失败的多个网络请求;
获取所述多个网络请求中的每一个网络请求对应的重试次数;
重新发起所述每一个网络请求;
判断所述多个网络请求中的每一个网络请求在对应的重试次数内是否请求成功;
如果均请求成功则请求处理成功,否则请求处理失败。
2.根据权利要求1所述的方法,其特征在于,重新发起所述每一个网络请求包括:
将获取到的所述多个网络请求中的每一个网络请求均作为数组中的一个元素进行保存;
遍历所述数组;
根据遍历得到的所述数组中的元素重新发起所述每一个网络请求。
3.根据权利要求2所述的方法,其特征在于,判断所述每一个网络请求在对应的重试次数内是否请求成功包括:
将所述每一个网络请求在对应的重试次数内是否请求成功的结果保存在另一个数组中;
根据所述另一个数组中保存的内容判断是否请求成功。
4.根据权利要求2所述的方法,其特征在于,将所述每一个网络请求均作为所述数组中的一个元素进行保存包括:
将每一个网络请求均生成为一个对象,其中,生成对象的类是预先定义的;
将每个所述对象均作为所述数组中的一个元素进行保存。
5.根据权利要求4所述的方法,其特征在于,所述类包括如下接口:将所述网络请求作为对象添加的接口、对所述网络请求重新发起的接口。
6.根据权利要求1至5中任一项所述的方法,其特征在于,
对于重新发起的每一个网络请求生成Promise对象;
通过所述Promise对象重新发起所述每一个网络请求,并判断所述每一个网络请求在对应的重试次数内是否请求成功。
7.根据权利要求6所述的方法,其特征在于,通过所述Promise对象判断所述每一个网络请求在对应的重试次数内是否请求成功包括:
通过所述Promise对象中的then方法处理所述每一个网络请求在对应的重试次数内的请求成功或者失败的逻辑。
8.一种请求处理装置,其特征在于,包括:
第一获取单元,用于获取请求失败的多个网络请求;
第二获取单元,用于获取所述多个网络请求中的每一个网络请求对应的重试次数;
发起单元,用于重新发起所述每一个网络请求;
判断单元,用于判断所述多个网络请求中的每一个网络请求在对应的重试次数内是否请求成功;
如果均请求成功则请求处理成功,否则请求处理失败。
9.根据权利要求8所述的装置,其特征在于,所述发起单元包括:
第一保存模块,用于将获取到的所述多个网络请求中的每一个网络请求均作为数组中的一个元素进行保存;
遍历模块,用于遍历所述数组;
发起模块,用于根据遍历得到的所述数组中的元素重新发起所述每一个网络请求。
10.根据权利要求9所述的装置,其特征在于,所述判断单元包括:
第二保存模块,用于将所述每一个网络请求在对应的重试次数内是否请求成功的结果保存在另一个数组中;
第一判断模块,用于根据所述另一个数组中保存的内容判断是否请求成功。
CN201611223202.8A 2016-12-26 2016-12-26 请求处理方法及装置 Active CN108243229B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201611223202.8A CN108243229B (zh) 2016-12-26 2016-12-26 请求处理方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201611223202.8A CN108243229B (zh) 2016-12-26 2016-12-26 请求处理方法及装置

Publications (2)

Publication Number Publication Date
CN108243229A true CN108243229A (zh) 2018-07-03
CN108243229B CN108243229B (zh) 2021-03-30

Family

ID=62702429

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611223202.8A Active CN108243229B (zh) 2016-12-26 2016-12-26 请求处理方法及装置

Country Status (1)

Country Link
CN (1) CN108243229B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109785939A (zh) * 2018-12-20 2019-05-21 蓝网科技股份有限公司 基于云技术的医学影像显示方法、装置、设备及存储介质
CN111479334A (zh) * 2020-03-20 2020-07-31 平安国际智慧城市科技股份有限公司 一种网络请求重试方法、装置及终端设备
CN115914337A (zh) * 2022-10-10 2023-04-04 深圳优美创新科技有限公司 一种app网络连接失败处理方法

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1859353A (zh) * 2005-05-08 2006-11-08 华为技术有限公司 基于重试机制的业务过程中对sip协议请求的处理方法
CN102843369A (zh) * 2012-08-24 2012-12-26 广东宇天科技有限公司 Ui界面的网络访问方法和系统
CN103220162A (zh) * 2012-01-19 2013-07-24 百度在线网络技术(北京)有限公司 基于hdfs的scsi容错优化方法及装置
CN103988547A (zh) * 2011-10-20 2014-08-13 高通股份有限公司 用于处理在eHRPD预注册期间的失败和重试机制的方法和装置
US20140379857A1 (en) * 2013-06-24 2014-12-25 Samsung Electronics Co., Ltd. Method and apparatus for providing content with streaming
CN105338314A (zh) * 2015-10-28 2016-02-17 上海斐讯数据通信技术有限公司 一种无线网络条件下的视频云台控制方法及系统
CN105512244A (zh) * 2015-11-30 2016-04-20 北京京东尚科信息技术有限公司 基于消息队列实现数据库事务处理的方法及装置
CN105700937A (zh) * 2016-01-04 2016-06-22 北京百度网讯科技有限公司 多线程任务处理方法和装置

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1859353A (zh) * 2005-05-08 2006-11-08 华为技术有限公司 基于重试机制的业务过程中对sip协议请求的处理方法
CN103988547A (zh) * 2011-10-20 2014-08-13 高通股份有限公司 用于处理在eHRPD预注册期间的失败和重试机制的方法和装置
CN103220162A (zh) * 2012-01-19 2013-07-24 百度在线网络技术(北京)有限公司 基于hdfs的scsi容错优化方法及装置
CN102843369A (zh) * 2012-08-24 2012-12-26 广东宇天科技有限公司 Ui界面的网络访问方法和系统
US20140379857A1 (en) * 2013-06-24 2014-12-25 Samsung Electronics Co., Ltd. Method and apparatus for providing content with streaming
CN105338314A (zh) * 2015-10-28 2016-02-17 上海斐讯数据通信技术有限公司 一种无线网络条件下的视频云台控制方法及系统
CN105512244A (zh) * 2015-11-30 2016-04-20 北京京东尚科信息技术有限公司 基于消息队列实现数据库事务处理的方法及装置
CN105700937A (zh) * 2016-01-04 2016-06-22 北京百度网讯科技有限公司 多线程任务处理方法和装置

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109785939A (zh) * 2018-12-20 2019-05-21 蓝网科技股份有限公司 基于云技术的医学影像显示方法、装置、设备及存储介质
CN111479334A (zh) * 2020-03-20 2020-07-31 平安国际智慧城市科技股份有限公司 一种网络请求重试方法、装置及终端设备
CN111479334B (zh) * 2020-03-20 2023-08-11 深圳赛安特技术服务有限公司 一种网络请求重试方法、装置及终端设备
CN115914337A (zh) * 2022-10-10 2023-04-04 深圳优美创新科技有限公司 一种app网络连接失败处理方法

Also Published As

Publication number Publication date
CN108243229B (zh) 2021-03-30

Similar Documents

Publication Publication Date Title
CN107402880B (zh) 一种测试方法及电子设备
CN105337990B (zh) 用户身份的校验方法及装置
CN106911687B (zh) 一种页面构建控制方法和装置
CN104462478B (zh) 实现移动浏览器客户端与网页交互的方法、装置和客户端
CN105915650B (zh) 负载均衡方法和装置
CN106156133A (zh) 控制表单重复提交的方法、装置及系统
CN108696399A (zh) 业务服务的测试方法和装置
CN106776989A (zh) 一种网页信息展示方法以及装置
CN108243229A (zh) 请求处理方法及装置
CN109600336A (zh) 存储设备、验证码应用方法和装置
CN109344126B (zh) 贴图的处理方法、装置、存储介质和电子装置
CN106411639A (zh) 访问数据的监控方法及系统
CN108804399A (zh) 表单的校验方法及装置
CN107896173A (zh) 自动化测试方法、测试设备、自动化测试系统及存储介质
CN108121716A (zh) 处理问题单的方法和问题单处理系统
CN108509544A (zh) 思维导图的获取方法及装置、设备及可读存储介质
CN108170772A (zh) 一种数据处理方法及装置
CN103838720B (zh) 页面文件载入执行方法和装置
CN107273112A (zh) 一种礼物榜单信息显示方法及装置
CN108366098A (zh) 一种网络节点的数据交互方法及装置
CN109062807A (zh) 测试应用程序的方法及装置、存储介质、电子装置
CN108073703A (zh) 一种评论信息获取方法、装置、设备及存储介质
CN108154024A (zh) 一种数据检索方法、装置及电子设备
CN106257507A (zh) 用户行为的风险评估方法及装置
CN110188276A (zh) 数据发送装置、方法、电子设备及计算机可读存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information

Address after: 100083 No. 401, 4th Floor, Haitai Building, 229 North Fourth Ring Road, Haidian District, Beijing

Applicant after: Beijing Guoshuang Technology Co.,Ltd.

Address before: 100086 Cuigong Hotel, 76 Zhichun Road, Shuangyushu District, Haidian District, Beijing

Applicant before: Beijing Guoshuang Technology Co.,Ltd.

CB02 Change of applicant information
GR01 Patent grant
GR01 Patent grant