CN107438097A - 网络请求处理方法及装置 - Google Patents
网络请求处理方法及装置 Download PDFInfo
- Publication number
- CN107438097A CN107438097A CN201710495670.9A CN201710495670A CN107438097A CN 107438097 A CN107438097 A CN 107438097A CN 201710495670 A CN201710495670 A CN 201710495670A CN 107438097 A CN107438097 A CN 107438097A
- Authority
- CN
- China
- Prior art keywords
- network request
- data
- calling
- interface layer
- processing
- 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
Links
- 238000012545 processing Methods 0.000 title claims abstract description 122
- 238000003672 processing method Methods 0.000 title claims abstract description 16
- 238000000034 method Methods 0.000 claims abstract description 41
- 238000004891 communication Methods 0.000 claims description 27
- 238000006243 chemical reaction Methods 0.000 claims description 6
- 238000011161 development Methods 0.000 abstract description 19
- 230000008569 process Effects 0.000 abstract description 19
- 238000010586 diagram Methods 0.000 description 7
- 230000002159 abnormal effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000001427 coherent effect Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000005856 abnormality Effects 0.000 description 1
- 230000002547 anomalous effect Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/34—Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明提供一种网络请求处理方法及装置,该方法包括:在应用程序需要发送网络请求时,调用预先设置的通用接口层;按照所述通用接口层所规定的调用规则,根据所述网络请求,确定与所述网络请求匹配的网络请求框架;所述调用规则用于指示与每个网络请求匹配的网络请求框架;采用所述网络请求框架向目标服务器请求数据。本发明提供的网络请求处理方法及装置,能够实现应用程序与网络请求框架的解耦,进而能够提高应用程序的开发效率,同时能够降低应用程序开发过程中出现的调用逻辑的错误率。
Description
技术领域
本发明涉及终端领域,尤其涉及一种网络请求处理方法及装置。
背景技术
目前,大多数应用程序通常需要向网络服务器发送网络请求,用以实现与网络服务器的数据交换。在现有技术中,应用在安卓(Android)操作系统上的应用程序大多需要调用网络请求框架来发送网络请求。上述网络请求框架包括但不限于Scoket网络请求框架、超文本传输协议(HyperText Transfer Protocol,HTTP)网络请求框架等。
一方面,由于网络请求框架本身经常进行重大升级,为了应用程序能更好的适配升级后的网络请求框架,开发人员需要逐一修改应用程序的每个网络请求的调用方式。另一方面,为了实现更多功能,在应用程序的开发或维护中,有时需要变更应用程序当前所调用的网络请求框架,此时,开发人员需要调整应用程序原有的调用逻辑。
可见,利用现有的方式开发或维护应用程序时,开发效率低,甚至可能出现调用逻辑错误的现象。
发明内容
本发明提供一种网络请求处理方法及装置,用于实现应用程序与网络请求框架的解耦,进而提高应用程序的开发效率,同时降低应用程序开发过程中出现的调用逻辑的错误率。
第一方面,本发明提供一种网络请求处理方法,该方法包括:
在应用程序需要发送网络请求时,调用预先设置的通用接口层;
按照所述通用接口层所规定的调用规则,根据所述网络请求,确定与所述网络请求匹配的网络请求框架;所述调用规则用于指示与每个网络请求匹配的网络请求框架;
采用所述网络请求框架向目标服务器请求数据。
在一种可能的实施方式中,所述网络请求中包括:所述应用程序当前所请求的目标服务器的地址;所述调用规则包括:每个通信协议对应的网络请求框架;
所述按照所述通用接口层所规定的调用规则,根据所述网络请求,确定与所述网络请求匹配的网络请求框架,包括:
根据所述目标服务器的地址,确定与所述网络请求对应的通信协议;
根据所述通信协议和所述调用规则,确定所述通信协议对应的网络请求框架。
在另一种可能的实施方式中,所述采用所述网络请求框架向目标服务器请求数据之后,所述方法还包括:
采用所述网络请求框架接收数据;
调用所述通用接口层对接收到的数据进行数据处理。
在另一种可能的实施方式中,所述在应用程序需要发送网络请求时,调用预先设置的通用接口层,包括:
在所述应用程序需要发送网络请求时,调用所述通用接口层的第一线程;
所述调用所述通用接口层对接收到的数据进行数据处理,包括:
调用所述通用接口层的第二线程确定所述接收到的数据是否为所请求的数据。
在另一种可能的实施方式中,在所述调用所述通用接口层的第二线程确定所述接收到的数据是否为所请求的数据之后,所述调用所述通用接口层对接收到的数据进行数据处理,还包括:
在所述接收到的数据为所请求的数据时,调用所述第一线程对所述接收到的数据进行预设逻辑处理得到逻辑处理后的数据,并将所述逻辑处理后的数据发送至所述应用程序的主线程进行显示处理。
在另一种可能的实施方式中,所述网络请求中还包括:所请求的数据的显示格式;
所述调用所述第一线程对所述接收到的数据进行预设逻辑处理之前,所述调用所述通用接口层对接收到的数据进行数据处理,还包括:
在所述接收到的数据为所请求的数据时,调用所述第二线程,根据所请求的数据的显示格式,对所述接收到的数据进行格式转换。
在另一种可能的实施方式中,在所述调用所述通用接口层的第二线程确定所述接收到的数据是否为所请求的数据之后,所述调用所述通用接口层对接收到的数据进行数据处理,还包括:
在所述接收到的数据不是所请求的数据时,调用所述第一线程,根据预设的错误处理策略,对所述接收到的数据进行错误处理,得到错误处理结果;所述预设的错误处理策略包括:所述接收到的数据与所述错误处理结果的对应关系;
将所述错误处理结果发送至所述应用程序的主线程进行显示处理。
在另一种可能的实施方式中,在更新所述网络请求框架之后,所述确定与所述网络请求匹配的网络请求框架,包括:
按照所述通用接口层所规定的调用规则,根据所述网络请求,确定与所述网络请求匹配的更新后的网络请求框架。
第二方面,本发明提供一种网络请求处理装置,该装置包括:
调用模块,用于在应用程序需要发送网络请求时,调用预先设置的通用接口层;
确定模块,用于按照所述通用接口层所规定的调用规则,根据所述网络请求,确定与所述网络请求匹配的网络请求框架;所述调用规则用于指示与每个网络请求匹配的网络请求框架;
请求模块,用于采用所述网络请求框架向目标服务器请求数据。
在一种可能的实施方式中,所述网络请求中包括:所述应用程序当前所请求的目标服务器的地址;所述调用规则包括:每个通信协议对应的网络请求框架;
所述确定模块,具体用于根据所述目标服务器的地址,确定与所述网络请求对应的通信协议,并根据所述通信协议和所述调用规则,确定所述通信协议对应的网络请求框架。
在另一种可能的实施方式中,所述装置还包括:
接收模块,用于在所述请求模块采用所述网络请求框架向目标服务器请求数据之后,采用所述网络请求框架接收数据;
所述调用模块,还用于调用所述通用接口层对接收到的数据进行数据处理。
在另一种可能的实施方式中,所述调用模块,具体用于在所述应用程序需要发送网络请求时,调用所述通用接口层的第一线程;调用所述通用接口层的第二线程确定所述接收到的数据是否为所请求的数据。
在另一种可能的实施方式中,所述调用模块,具体用于在所述调用所述通用接口层的第二线程确定所述接收到的数据是否为所请求的数据之后,在所述接收到的数据为所请求的数据时,调用所述第一线程对所述接收到的数据进行预设逻辑处理得到逻辑处理后的数据,并将所述逻辑处理后的数据发送至所述应用程序的主线程进行显示处理。
在另一种可能的实施方式中,所述网络请求中还包括:所请求的数据的显示格式;
所述调用模块,具体用于调用所述第一线程对所述接收到的数据进行预设逻辑处理之前,在所述接收到的数据为所请求的数据时,调用所述第二线程,根据所请求的数据的显示格式,对所述接收到的数据进行格式转换。
在另一种可能的实施方式中,所述调用模块,具体用于在所述调用所述通用接口层的第二线程确定所述接收到的数据是否为所请求的数据之后,在所述接收到的数据不是所请求的数据时,调用所述第一线程,根据预设的错误处理策略,对所述接收到的数据进行错误处理,得到错误处理结果,并将所述错误处理结果发送至所述应用程序的主线程进行显示处理;所述预设的错误处理策略包括:所述接收到的数据与所述错误处理结果的对应关系。
在另一种可能的实施方式中,所述确定模块,还用于在更新所述网络请求框架之后,按照所述通用接口层所规定的调用规则,根据所述网络请求,确定与所述网络请求匹配的更新后的网络请求框架。
本发明提供的网络请求处理方法及装置,通过预先设置一个位于应用程序与网络请求框架之间的通用接口层,可以实现应用程序与网络请求框架的解耦,以使得开发人员在开发应用程序时,只需要将应用程序的所有调用网络请求框架的调用点与该通用接口层的调用接口建立调用关系即可,不用再为应用程序约束好每个网络请求所对应的网络请求框架。即便应用程序所使用的网络请求框架升级或者所使用的网络请求框架发生了切换,开发人员也不用根据升级后的网络请求框架或新的网络请求框架的调用方式,在应用程序调用网络请求框架的调用点进行调用方式的修改,或者,调整应用程序的原有逻辑,提高了应用程序的开发效率,同时降低了应用程序开发过程中出现的调用逻辑的错误率,确保了应用程序的稳定性和可靠性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明提供的一种终端设备的架构图;
图2为本发明提供的一种网络请求处理方法的流程示意图;
图3为本发明提供的一种基于网络请求的数据处理方法的流程示意图;
图4为本发明提供的一种网络请求处理装置的结构示意图;
图5为本发明提供的另一种网络请求处理装置的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
现有技术中,应用在安卓操作系统上的应用程序大多需要调用网络请求框架来发送网络请求。其中,用户在使用应用程序的不同功能时,应用程序发送网络请求所使用的通信协议不同。由于不同的通信协议对应不同的网络请求框架,因此,应用程序开发人员在开发应用程序时,会在每个调用网络请求框架的调用点,根据该调用点发送网络请求时所需使用的网络请求框架,为该调用点与该网络请求框架建立调用关系。
为了更好的性能和体验,开发人员会对网络请求框架经常进行升级。同时,市面上也会有新的网络请求框架出现。因此,在更新升级后的网络请求框架或切换新的网络请求框架时,应用程序开发人员需要根据升级后的网络请求框架或新的网络请求框架的调用方式,在应用程序调用网络请求框架的调用点进行调用方式的修改,或者,调整应用程序的原有逻辑,使得应用程序的开发效率较低、甚至可能出现调用逻辑错误的现象。
图1为本发明提供的一种终端设备的架构图。如图1所示,本发明提供的网络请求处理方法,通过预先设置一个位于应用程序与网络请求框架之间的通用接口层,可以实现应用程序与网络请求框架的解耦。具体地:
如图1所示,上述预先设置的通用接口层可以与多个网络请求框架具有调用关系。因此,在本实施例中,开发人员在开发应用程序时,不再将应用程序的调用网络请求框架的调用点与某一网络请求框架建立调用关系。即开发人员开发应用程序的时候,不再为应用程序约束好每个网络请求所对应的网络请求框架,而是将应用程序的所有调用网络请求框架的调用点与该通用接口层的调用接口建立调用关系,以实现应用程序与网络请求框架的解耦。这样,即便应用程序所使用的网络请求框架升级或者所使用的网络请求框架发生了切换,开发人员只需要调整通用接口层与升级后的网络请求框架或新的网络请求框架的调用方式即可,不用再根据升级后的网络请求框架或新的网络请求框架的调用方式,在应用程序调用网络请求框架的调用点进行调用方式的修改,或者,调整应用程序的原有逻辑,提高了应用程序的开发效率,同时降低了应用程序开发过程中出现的调用逻辑的错误率,确保了应用程序的稳定性和可靠性。具体实现时,上述通用接口层可以采用任一通信协议的使用方式来实现,例如:上述网络请求框架接口层可以采用HTTP协议的使用方式实现等。
下面以具体地实施例对本发明的技术方案进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。
图2为本发明提供的一种网络请求处理方法的流程示意图。该方法的执行主体可以为网络请求处理装置,还可以为集成了网络请求处理装置的终端设备,下述以执行主体为集成了网络请求处理装置的终端设备(简称:终端设备)为例进行说明,本实施涉及的是终端设备在接收到应用程序的网络请求后,如何选择网络请求框架进行数据请求的过程。如图2所示,该方法可以包括:
S101、在应用程序需要发送网络请求时,调用预先设置的通用接口层。
具体的,在终端设备运行应用程序的过程中,即用户在使用应用程序的过程中,若用户触发应用程序进行网络请求时,则终端设备可以调用预先设置的通用接口层。例如:用户在使用终端设备上安装的58同城应用程序时,若用户需要搜索某一二手物品时,则用户可以触发应用程序进行网络请求,以从网络请求与该二手物品对应的信息。此时,终端设备可以调用预先设置的通用接口层。
S102、按照通用接口层所规定的调用规则,根据网络请求,确定与网络请求匹配的网络请求框架,其中,该调用规则用于指示与每个网络请求匹配的网络请求框架。
可选的,上述调用规则可以包括:每个网络请求与网络请求框架的对应关系。因此,上述终端设备可以根据应用程序需要发送网络请求,在调用规则中查找该网络请求对应的网络请求框架,以确定与网络请求匹配的网络请求框架。
可选的,上述调用规则可以包括:每个通信协议对应的网络请求框架。相应地,上述网络请求中可以包括:应用程序当前所请求的目标服务器的地址。由于目标服务器的地址携带有通信协议,因此,上述终端设备可以根据应用程序需要发送网络请求中携带的目标服务器的地址,确定与该网络请求对应的通信协议。然后,终端设备可以根据通信协议和调用规则,确定通信协议对应的网络请求框架。即,终端设备可以在调用规则中查找该通信协议对应的网络请求框架,以确定与网络请求匹配的网络请求框架。
以网络请求所包括的目标服务器的地址http://xa.58.com/为例,则该目标服务器的地址中的HTTP即为该网络请求所使用的通信协议。因此,上述终端设备可以根据该目标服务器的地址,确定网络请求所使用的通信协议为HTTP。然后,终端设备可以根据HTTP,确定HTTP对应的网络请求框架。
需要说明的是,当开发人员根据网络请求框架的升级内容,对上述网络请求匹配的网络请求框架进行了更新,即调整通用接口层与升级后的网络请求框架的调用方式后,上述终端设备按照通用接口层所规定的调用规则,根据网络请求,可以为网络请求确定更新后的网络请求框架。或者,在开发人员为上述网络请求设置了新的网络请求框架时,上述开发人员在建立通用接口层与该新的网络请求框架的调用关系后,可以调整上述调用规则,以使得上述终端设备按照通用接口层所规定的调用规则,根据网络请求,为网络请求确定的是更新后的网络请求框架(即新的网络请求框架)。
通过上述方式,在实现更新网络请求框架或新增网络请求框架的基础上,开发人员不用再根据升级后的网络请求框架或新的网络请求框架的调用方式,在应用程序调用网络请求框架的调用点进行调用方式的修改,或者,调整应用程序的原有逻辑,提高了应用程序的开发效率,同时降低了应用程序开发过程中出现的调用逻辑的错误率,确保了应用程序的稳定性和可靠性。
S103、采用网络请求框架向目标服务器请求数据。
具体的,上述终端设备在确定与网络请求匹配的网络请求框架之后,可以采用该网络请求框架进行网络交互,以向目标服务器请求数据。其中,终端设备如何采用该网络请求框架与网络进行交互,以向目标服务器请求数据可以参见现有技术,对此不再赘述。
本发明提供的网络请求处理方法,通过预先设置一个位于应用程序与网络请求框架之间的通用接口层,可以实现应用程序与网络请求框架的解耦,以使得开发人员在开发应用程序时,只需要将应用程序的所有调用网络请求框架的调用点与该通用接口层的调用接口建立调用关系即可,不用再为应用程序约束好每个网络请求所对应的网络请求框架。即便应用程序所使用的网络请求框架升级或者所使用的网络请求框架发生了切换,开发人员也不用根据升级后的网络请求框架或新的网络请求框架的调用方式,在应用程序调用网络请求框架的调用点进行调用方式的修改,或者,调整应用程序的原有逻辑,提高了应用程序的开发效率,同时降低了应用程序开发过程中出现的调用逻辑的错误率,确保了应用程序的稳定性和可靠性。
图3为本发明提供的一种基于网络请求的数据处理方法的流程示意图。本实施例涉及的是上述终端设备在采用网络请求框架向目标服务器请求数据之后,调用通用接口层对接收到的数据进行数据处理的过程。如图3所示,在上述S103之后,该方法还可以包括:
S201、采用网络请求框架接收数据。
具体的,上述终端设备在采用网络请求框架向目标服务器请求数据之后,可以采用相应的网络请求框架接收到数据。其中,终端设备如何采用该网络请求框架接收数据可以参见现有技术,对此不再赘述。
S202、调用通用接口层对接收到的数据进行数据处理。
具体的,在本实施例中,终端设备可以调用通用接口层的线程对接收到的数据进行数据处理,这里所说的数据处理例如可以包括:判断处理、逻辑处理、错误处理。判断处理用于判断所接收到的数据是否为所请求的数据。逻辑处理用于在所接收到的数据为所请求的数据时,对数据进行显示逻辑处理,以符合显示要求。错误处理用于在所接收到的数据不是所请求的数据时,对数据进行错误处理,以使得用户可以获知错误结果。
因此,开发人员在开发应用程序时,可以不用在应用程序中写入上述用于数据处理的代码,进一步提高了应用程序的开发效率,降低了开发成本。具体实现时,可以采用响应式编程例如RxJava(响应式编程框架)的方式,在通用接口层封装用于判断处理、逻辑处理、错误处理的代码,使得终端设备通过通用接口层可以直接实现调用网络请求框架和数据处理的功能,从而使得网络请求的处理更加方便和连贯,进而提高了网络请求的处理效率。
其中,上述通用接口层可以通过一个线程对所接收到的数据的数据处理,该线程可以为用于处理网络请求的线程,还可以为其他线程。上述通用接口层还可以通过不同的线程对所接收到的数据的数据处理。
在本实施例中,可以为上述通用接口层创建第一线程和第二线程,用以实现上述终端设备调用通用接口层对接收到的数据进行数据处理。其中,第一线程可以用于处理应用程序的网络请求,即在应用程序需要发送网络请求时,终端设备调用通用接口层的第一线程进行处理。第二线程可以用于进行数据处理或处理网络请求。这样,可以实现网络请求操作和网络请求处理操作的异步处理,分别采用不同的线程进行网络请求或数据处理,进一步实现了网络请求与数据处理的解耦,同时提高了终端设备进行网络交互时的处理速度。
举例来说,在采用网络请求框架接收到数据之后,终端设备可以调用通用接口层的第二线程对所接收到的数据进行判断处理,以确定所接收到的数据是否为所请求的数据。由于处理网络请求,以及,判断处理都会占用大量的时间,因此,将上述两种操作分给不同的线程处理的方式,可以提高处理速度。
需要说明的是,在本实施例中,上述终端设备采用网络请求框架接收到的数据可以为所请求的数据,还可以为错误数据或异常数据。例如,当上述终端设备与网络连接正常(即终端设备采用网络请求框架可以将网络请求发送给目标服务器)、且目标服务器处于正常工作状态时(即服务器能够对网络请求进行正确的处理),上述终端设备采用网络请求框架接收到的数据即为所请求的数据。然而,当上述终端设备与网络连接正常(即终端设备采用网络请求框架可以将网络请求发送给目标服务器)、但目标服务器处于非正常工作状态时(即服务器对网络请求的处理存在异常或错误),上述终端设备采用网络请求框架接收到的数据是用于指示服务器错误的数据(即错误数据),而不是所请求的数据;或者,当上述终端设备与网络连接失败时,即上述终端设备无法采用网络请求框架,将网络请求发送给目标服务器时,上述终端设备采用网络请求框架接收到的数据是用于指示网络异常的数据(即异常数据),而不是所请求的数据。在本实施例中,终端设备可以调用通用接口层的第二线程对所接收到的数据进行上述判断处理,以确定所接收到的数据是否为所请求的数据。
进一步地,上述第一线程还可以进行逻辑处理。即,终端设备在调用通用接口层的第二线程确定接收到的数据为所请求的数据之后,可以将该数据发送给第一线程,以使得终端设备可以调用第一线程对接收到的数据进行预设逻辑处理,得到逻辑处理后的数据,并将逻辑处理后的数据发送至应用程序的主线程直接进行显示处理。通过这种方式,使得用户可以通过应用程序的界面查看到所请求的数据。
可选的,在一些实施例中,在所接收到的数据为所请求的数据时,上述第二线程还可以根据网络请求中携带的显示格式,对所接收到的数据进行格式转换。因此,若上述网络请求中还包括:所请求的数据的显示格式,例如可以为表格格式、图片格式等,则上述终端设备在调用第一线程对接收到的数据进行预设逻辑处理之前,还可以调用第二线程,根据所请求的数据的显示格式,对接收到的数据进行格式转换。通过这种方式,使得应用程序所显示的数据可以为用户所期望看到的显示格式。
这样,在本实施例中,终端设备可以通过轮流调用通用接口层的第一线程和第二线程的方式,分别执行网络请求和数据处理等操作,进一步实现了网络请求和数据处理的异步处理。
再举例来说,在采用网络请求框架接收到数据之后,终端设备可以调用通用接口层的第二线程对所接收到的数据进行判断处理,以确定所接收到的数据是否为所请求的数据。进一步地上述第一线程还可以进行错误处理。即,终端设备在调用通用接口层的第二线程确定接收到的数据不是所请求的数据之后,可以将该数据发送给第一线程,以使得终端设备可以调用第一线程根据预设的错误处理策略,对接收到的数据进行错误处理,得到错误处理结果,进而将错误处理结果发送至应用程序的主线程进行显示处理。
其中,上述预设的错误处理策略包括:接收到的数据与错误处理结果的对应关系。例如:当所接收到的数据是用于指示服务器错误的数据(即错误数据)时,上述错误处理结果例如可以为“服务器错误”。当所接收到的数据是用于指示网络异常的数据(即异常数据),上述错误处理结果例如可以为“网络连接异常”等。通过这种方式,使得用户通过应用程序所显示的错误处理结果获知当前的错误,进而使得用户可以决策是否需要重新发送网络请求,提高了用户体验。
这样,在本实施例中,终端设备可以通过轮流调用通用接口层的第一线程和第二线程的方式,分别执行网络请求和数据处理等操作,进一步实现了网络请求和数据处理的异步处理。可见,本发明提供的网络请求处理方法及基于网络请求的数据处理方法,通过预先设置一个位于应用程序与网络请求框架之间的通用接口层,在实现应用程序与网络请求框架的解耦的基础上,还可以为通用接口层增加数据处理功能,以使得终端设备通过通用接口层可以直接实现调用网络请求框架和数据处理,从而使得网络请求的处理更加方便和连贯,进而实现了网络请求和数据处理的异步处理。同时,开发人员也不用再在应用程序中写入上述用于数据处理的代码,进一步提高了应用程序的开发效率,降低了开发成本。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
图4为本发明提供的一种网络请求处理装置的结构示意图。请参见图4,该网络请求处理装置可以包括获调用模块11、确定模块12和请求模块13。其中,
调用模块11,用于在应用程序需要发送网络请求时,调用预先设置的通用接口层;
确定模块12,用于按照通用接口层所规定的调用规则,根据网络请求,确定与网络请求匹配的网络请求框架,其中,调用规则用于指示与每个网络请求匹配的网络请求框架;
请求模块13,用于采用网络请求框架向目标服务器请求数据。
在一些实施例中,上述网络请求中包括应用程序当前所请求的目标服务器的地址,上述调用规则包括每个通信协议对应的网络请求框架,则上述确定模块12,可以具体用于根据目标服务器的地址,确定与网络请求对应的通信协议,并根据通信协议和调用规则,确定通信协议对应的网络请求框架。
在一些实施例中,上述确定模块12,还用于在更新网络请求框架之后,按照通用接口层所规定的调用规则,根据网络请求,确定与网络请求匹配的更新后的网络请求框架。
本发明提供的网络请求处理装置可以用于执行上述所示的方法实施例,其实现原理以及有益效果类似,此处不再进行赘述。
图5为本发明提供的另一种网络请求处理装置的结构示意图。在上述图4所示的框图的基础上,上述装置还可以包括:接收模块14。其中,
接收模块14,用于在请求模块13采用网络请求框架向目标服务器请求数据之后,采用网络请求框架接收数据;
调用模块11,还用于调用通用接口层对接收到的数据进行数据处理。
可选的,调用模块11,具体用于在应用程序需要发送网络请求时,调用通用接口层的第一线程;调用通用接口层的第二线程确定接收到的数据是否为所请求的数据。
可选的,上述调用模块11,具体用于在调用通用接口层的第二线程确定接收到的数据是否为所请求的数据之后,在接收到的数据为所请求的数据时,调用第一线程对接收到的数据进行预设逻辑处理得到逻辑处理后的数据,并将逻辑处理后的数据发送至应用程序的主线程进行显示处理。
可选的,当上述网络请求中还包括所请求的数据的显示格式时,上述调用模块11,具体用于调用第一线程对接收到的数据进行预设逻辑处理之前,在接收到的数据为所请求的数据时,调用第二线程,根据所请求的数据的显示格式,对接收到的数据进行格式转换。
可选的,上述调用模块11,具体用于在调用通用接口层的第二线程确定接收到的数据是否为所请求的数据之后,在接收到的数据不是所请求的数据时,调用第一线程,根据预设的错误处理策略,对接收到的数据进行错误处理,得到错误处理结果,并将错误处理结果发送至应用程序的主线程进行显示处理;预设的错误处理策略包括:接收到的数据与错误处理结果的对应关系。
本发明提供的网络请求处理装置可以用于执行上述所示的方法实施例,其实现原理以及有益效果类似,此处不再进行赘述。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (9)
1.一种网络请求处理方法,其特征在于,所述方法包括:
在应用程序需要发送网络请求时,调用预先设置的通用接口层;
按照所述通用接口层所规定的调用规则,根据所述网络请求,确定与所述网络请求匹配的网络请求框架;所述调用规则用于指示与每个网络请求匹配的网络请求框架;
采用所述网络请求框架向目标服务器请求数据。
2.根据权利要求1所述的方法,其特征在于,所述网络请求中包括:所述应用程序当前所请求的目标服务器的地址;所述调用规则包括:每个通信协议对应的网络请求框架;
所述按照所述通用接口层所规定的调用规则,根据所述网络请求,确定与所述网络请求匹配的网络请求框架,包括:
根据所述目标服务器的地址,确定与所述网络请求对应的通信协议;
根据所述通信协议和所述调用规则,确定所述通信协议对应的网络请求框架。
3.根据权利要求1所述的方法,其特征在于,所述采用所述网络请求框架向目标服务器请求数据之后,所述方法还包括:
采用所述网络请求框架接收数据;
调用所述通用接口层对接收到的数据进行数据处理。
4.根据权利要求3所述的方法,其特征在于,所述在应用程序需要发送网络请求时,调用预先设置的通用接口层,包括:
在所述应用程序需要发送网络请求时,调用所述通用接口层的第一线程;
所述调用所述通用接口层对接收到的数据进行数据处理,包括:
调用所述通用接口层的第二线程确定所述接收到的数据是否为所请求的数据。
5.根据权利要求4所述的方法,其特征在于,在所述调用所述通用接口层的第二线程确定所述接收到的数据是否为所请求的数据之后,所述调用所述通用接口层对接收到的数据进行数据处理,还包括:
在所述接收到的数据为所请求的数据时,调用所述第一线程对所述接收到的数据进行预设逻辑处理得到逻辑处理后的数据,并将所述逻辑处理后的数据发送至所述应用程序的主线程进行显示处理。
6.根据权利要求5所述的方法,其特征在于,所述网络请求中还包括:所请求的数据的显示格式;
所述调用所述第一线程对所述接收到的数据进行预设逻辑处理之前,所述调用所述通用接口层对接收到的数据进行数据处理,还包括:
在所述接收到的数据为所请求的数据时,调用所述第二线程,根据所请求的数据的显示格式,对所述接收到的数据进行格式转换。
7.根据权利要求4所述的方法,其特征在于,在所述调用所述通用接口层的第二线程确定所述接收到的数据是否为所请求的数据之后,所述调用所述通用接口层对接收到的数据进行数据处理,还包括:
在所述接收到的数据不是所请求的数据时,调用所述第一线程,根据预设的错误处理策略,对所述接收到的数据进行错误处理,得到错误处理结果;所述预设的错误处理策略包括:所述接收到的数据与所述错误处理结果的对应关系;
将所述错误处理结果发送至所述应用程序的主线程进行显示处理。
8.根据权利要求1-7所述的方法,其特征在于,在更新所述网络请求框架之后,所述确定与所述网络请求匹配的网络请求框架,包括:
按照所述通用接口层所规定的调用规则,根据所述网络请求,确定与所述网络请求匹配的更新后的网络请求框架。
9.一种网络请求处理装置,其特征在于,所述装置包括:
调用模块,用于在应用程序需要发送网络请求时,调用预先设置的通用接口层;
确定模块,用于按照所述通用接口层所规定的调用规则,根据所述网络请求,确定与所述网络请求匹配的网络请求框架;所述调用规则用于指示与每个网络请求匹配的网络请求框架;
请求模块,用于采用所述网络请求框架向目标服务器请求数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710495670.9A CN107438097B (zh) | 2017-06-26 | 2017-06-26 | 网络请求处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710495670.9A CN107438097B (zh) | 2017-06-26 | 2017-06-26 | 网络请求处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107438097A true CN107438097A (zh) | 2017-12-05 |
CN107438097B CN107438097B (zh) | 2021-09-21 |
Family
ID=60458610
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710495670.9A Active CN107438097B (zh) | 2017-06-26 | 2017-06-26 | 网络请求处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107438097B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108040126A (zh) * | 2017-12-29 | 2018-05-15 | 贵阳语玩科技有限公司 | 发起http请求的方法及装置 |
CN108848127A (zh) * | 2018-05-23 | 2018-11-20 | 北京五八信息技术有限公司 | 数据传输方法、装置、计算机设备及计算机可读存储介质 |
CN110099122A (zh) * | 2019-05-07 | 2019-08-06 | 北京字节跳动网络技术有限公司 | 用于发送网络请求的方法和装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1744498A (zh) * | 2004-08-31 | 2006-03-08 | 华为技术有限公司 | 一种网络服务器以及网络服务器与浏览器的数据交互方法 |
US20070019772A1 (en) * | 2003-01-17 | 2007-01-25 | Applied Micro Circuits Corporation | Timeshared jitter attenuator in multi-channel mapping applications |
CN101765817A (zh) * | 2007-07-26 | 2010-06-30 | 乔治洛德方法研究和开发液化空气有限公司 | 可编程逻辑控制器协议转换器 |
CN101923465A (zh) * | 2010-06-25 | 2010-12-22 | 深圳创维-Rgb电子有限公司 | 一种面向嵌入式应用的易扩展web服务系统 |
CN103605525A (zh) * | 2013-11-29 | 2014-02-26 | 深圳市中兴移动通信有限公司 | 桌面应用程序的实现方法和装置 |
CN106357704A (zh) * | 2015-07-13 | 2017-01-25 | 阿里巴巴集团控股有限公司 | 一种基于开发环境的服务调用方法及装置 |
-
2017
- 2017-06-26 CN CN201710495670.9A patent/CN107438097B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070019772A1 (en) * | 2003-01-17 | 2007-01-25 | Applied Micro Circuits Corporation | Timeshared jitter attenuator in multi-channel mapping applications |
CN1744498A (zh) * | 2004-08-31 | 2006-03-08 | 华为技术有限公司 | 一种网络服务器以及网络服务器与浏览器的数据交互方法 |
CN101765817A (zh) * | 2007-07-26 | 2010-06-30 | 乔治洛德方法研究和开发液化空气有限公司 | 可编程逻辑控制器协议转换器 |
CN101923465A (zh) * | 2010-06-25 | 2010-12-22 | 深圳创维-Rgb电子有限公司 | 一种面向嵌入式应用的易扩展web服务系统 |
CN103605525A (zh) * | 2013-11-29 | 2014-02-26 | 深圳市中兴移动通信有限公司 | 桌面应用程序的实现方法和装置 |
CN106357704A (zh) * | 2015-07-13 | 2017-01-25 | 阿里巴巴集团控股有限公司 | 一种基于开发环境的服务调用方法及装置 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108040126A (zh) * | 2017-12-29 | 2018-05-15 | 贵阳语玩科技有限公司 | 发起http请求的方法及装置 |
CN108040126B (zh) * | 2017-12-29 | 2021-07-16 | 贵阳语玩科技有限公司 | 发起http请求的方法及装置 |
CN108848127A (zh) * | 2018-05-23 | 2018-11-20 | 北京五八信息技术有限公司 | 数据传输方法、装置、计算机设备及计算机可读存储介质 |
CN110099122A (zh) * | 2019-05-07 | 2019-08-06 | 北京字节跳动网络技术有限公司 | 用于发送网络请求的方法和装置 |
CN110099122B (zh) * | 2019-05-07 | 2020-05-15 | 北京字节跳动网络技术有限公司 | 用于发送网络请求的方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN107438097B (zh) | 2021-09-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2876865B1 (en) | Communication apparatus, communication system, communication method and recording medium | |
US8737262B2 (en) | Zero copy transmission with raw packets | |
CN111176858A (zh) | 一种数据请求处理方法及装置 | |
CN103942225A (zh) | 一种混合型应用客户端的资源调用方法、客户端及系统 | |
US10523754B2 (en) | Methods for integrating applications with a data storage network and devices thereof | |
CN107438097B (zh) | 网络请求处理方法及装置 | |
CN107908488B (zh) | 消息请求接口交互方法、装置、计算机设备及存储介质 | |
CN113360807B (zh) | 混合模式移动应用的页面显示方法、装置及相关设备 | |
CN112346794A (zh) | 接口调用方法、装置、设备及介质 | |
CN110933075B (zh) | 服务调用方法、装置、电子设备及存储介质 | |
CN105847319A (zh) | 一种移动终端网络请求方法及系统 | |
CN112799824A (zh) | 一种限流方法、装置、设备和存储介质 | |
CN110881224B (zh) | 一种网络长连接方法、装置、设备及存储介质 | |
CN108900627B (zh) | 一种网络请求方法、终端装置及存储介质 | |
CN114125050A (zh) | 消息调度方法、装置、设备及存储介质 | |
CN111294377B (zh) | 一种依赖关系的网络请求发送方法、终端装置及存储介质 | |
CN114666322A (zh) | 断点续传方法、装置和电子设备 | |
CN111756844A (zh) | 一种多语言消息代理方法及装置 | |
CN117519753A (zh) | 一种端设备的远程升级方法、装置、设备及存储介质 | |
CN115242972B (zh) | 一种应用调用摄像头的方法和装置、电子设备及存储介质 | |
CN107911442B (zh) | 接收响应接口交互方法、装置、计算机设备及存储介质 | |
CN113535020B (zh) | 用于生成应用图标的方法、装置、设备、介质和产品 | |
CN115599571A (zh) | 一种数据处理方法、装置、电子设备及存储介质 | |
CN111049938B (zh) | 消息通知方法、装置、电子设备及可读存储介质 | |
CN103294527A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |