CN110753020A - 网络请求处理方法和装置 - Google Patents

网络请求处理方法和装置 Download PDF

Info

Publication number
CN110753020A
CN110753020A CN201810820409.6A CN201810820409A CN110753020A CN 110753020 A CN110753020 A CN 110753020A CN 201810820409 A CN201810820409 A CN 201810820409A CN 110753020 A CN110753020 A CN 110753020A
Authority
CN
China
Prior art keywords
network request
processing
policy
response
request
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.)
Pending
Application number
CN201810820409.6A
Other languages
English (en)
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 Jingdong Century Trading Co Ltd
Beijing Jingdong Shangke Information Technology Co Ltd
Original Assignee
Beijing Jingdong Century Trading Co Ltd
Beijing Jingdong Shangke Information 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 Jingdong Century Trading Co Ltd, Beijing Jingdong Shangke Information Technology Co Ltd filed Critical Beijing Jingdong Century Trading Co Ltd
Priority to CN201810820409.6A priority Critical patent/CN110753020A/zh
Publication of CN110753020A publication Critical patent/CN110753020A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/20Network architectures or network communication protocols for network security for managing network security; network security policies in general
    • H04L63/205Network architectures or network communication protocols for network security for managing network security; network security policies in general involving negotiation or determination of the one or more network security mechanisms to be used, e.g. by negotiation between the client and the server or between peers or by selection according to the capabilities of the entities involved
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/16Implementing security features at a particular protocol layer
    • H04L63/168Implementing security features at a particular protocol layer above the transport layer

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

本发明公开了一种网络请求处理方法和装置,涉及计算机技术领域。其中,该方法包括:在接收到APP发起的网络请求之后,根据所述网络请求携带的接口级别获取对应的请求处理策略;基于所述对应的请求处理策略对所述网络请求进行处理;在对所述网络请求处理成功的情况下,将处理后的网络请求发送至服务端。通过以上步骤,能够极大提高移动端处理各种网络请求的能力,满足不同场景下的网络请求处理需求,提高代码的复用性,提高网络请求处理的灵活性。

Description

网络请求处理方法和装置
技术领域
本发明涉及计算机技术领域,尤其涉及一种网络请求处理方法和装置。
背景技术
移动端App(应用程序)几乎都需要进行网络请求,比如更新App的请求、登录请求、展示数据的请求等等。对于移动端APP来说,一般会采用现有的第三方开源库进行网络请求,比如适用于Android APP的okhttp3,适用于iOS APP的AFNetWorking。通常,我们会在第三方开源库的基础上封装一层,以满足自身的业务需要。
对于移动端APP来说,不同的网络请求可能需要进行不同的处理。比如,对于登录请求来说,需要对其进行加密处理;对于某些数据(比如城市列表数据)的获取请求,无需对其进行加密。现有技术中,移动端APP往往需要针对不同的网络请求编写不同的业务处理代码。
在实现本发明过程中,发明人发现现有技术中至少存在如下问题:第一、现有技术中,在对不同的网络请求进行不同处理时,解析数据的工作非常繁琐且容易出错,代码冗余严重且复用程度低。第二、在测试阶段,为方便测试,需要将各种网络请求进行明文(或称为“不加密”)通信;而在项目上线阶段,需要根据不同的网络请求进行加密或明文通信,代码改动大,来回切换缺乏灵活性。
发明内容
有鉴于此,本发明提供一种网络请求处理方法和装置,能够极大提高移动端处理各种网络请求的能力,满足不同场景下的网络请求处理需求,提高代码的复用性,提高网络请求处理的灵活性。
为实现上述目的,根据本发明的一个方面,提供了一种网络请求处理方法。
本发明的网络请求处理方法包括:在接收到APP发起的网络请求之后,根据所述网络请求携带的接口级别获取对应的请求处理策略;基于所述对应的请求处理策略对所述网络请求进行处理;在对所述网络请求处理成功的情况下,将处理后的网络请求发送至服务端。
可选地,所述方法还包括:在对所述网络请求处理失败的情况下,通过回调方式将网络请求处理失败的信息发送至所述APP。
可选地,所述方法还包括:在接收到所述服务端发送的针对所述网络请求的响应之后,根据所述网络请求携带的接口级别获取对应的响应处理策略;基于所述对应的响应处理策略对所述响应进行处理;在对所述响应处理成功的情况下,将处理后的响应发送至所述APP。
可选地,所述方法还包括:在对所述响应处理失败的情况下,通过回调方式将响应处理失败的信息发送至所述服务端。
可选地,所述方法还包括:配置网络请求的接口级别,以及不同接口级别对应的请求处理策略和响应处理策略。
为实现上述目的,根据本发明的另一方面,提供了一种网络请求处理装置。
本发明的网络请求处理装置包括:请求处理模块,用于在接收到APP发起的网络请求之后,根据所述网络请求携带的接口级别获取对应的请求处理策略;还用于基于所述对应的请求处理策略对所述网络请求进行处理;发送模块,用于在对所述网络请求处理成功的情况下,将处理后的网络请求发送至服务端。
可选地,所述发送模块,还用于在对所述网络请求处理失败的情况下,通过回调方式将网络请求处理失败的信息发送至所述APP。
可选地,所述装置还包括:响应处理模块,用于在接收到所述服务端发送的针对所述网络请求的响应之后,根据所述网络请求携带的接口级别获取对应的响应处理策略;还用于基于所述对应的响应处理策略对所述响应进行处理;所述发送模块,还用于在对所述响应处理成功的情况下,将处理后的响应发送至所述APP。
可选地,所述发送模块,还用于在对所述响应处理失败的情况下,通过回调方式将响应处理失败的信息发送至所述服务端。
可选地,所述装置还包括:配置模块,用于配置网络请求的接口级别,以及不同接口级别对应的请求处理策略和响应处理策略。
为实现上述目的,根据本发明的再一个方面,提供了一种电子设备。
本发明的电子设备,包括:一个或多个处理器;以及,存储装置,用于存储一个或多个程序;当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明的网络请求处理方法。
为实现上述目的,根据本发明的又一个方面,提供了一种计算机可读介质。
本发明的计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现本发明的网络请求处理方法。
上述发明中的一个实施例具有如下优点或有益效果:通过在接收到APP发起的网络请求之后,根据所述网络请求携带的接口级别获取对应的请求处理策略,基于所述对应的请求处理策略对所述网络请求进行处理,以及在处理成功的情况下将处理后的网络请求发送至服务端这些步骤,能够极大提高移动端处理各种网络请求的能力,满足不同场景下的网络请求处理需求,提高代码的复用性,提高网络请求处理的灵活性。
上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
附图说明
附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
图1是根据本发明一个实施例的网络请求处理方法的主要流程示意图;
图2a是根据本发明另一实施例的网络请求处理方法的部分流程示意图;
图2b是根据本发明另一实施例的网络请求处理方法的另一部分流程示意图;
图3是根据本发明一个实施例的网络请求处理装置的主要模块示意图;
图4是根据本发明另一实施例的网络请求处理装置的主要模块示意图;
图5是本发明实施例可以应用于其中的示例性系统架构图;
图6是适于用来实现本发明实施例的电子设备的计算机系统的结构示意图。
具体实施方式
以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
需要指出的是,在不冲突的情况下,本发明中的实施例以及实施例中的特征可以相互组合。
在详细介绍本发明的实施例之前,首先对本发明涉及的部分技术术语进行说明。
Android:是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,比如手机、平板电脑等,由Google公司和开放手机联盟领导及开发完成。
App:全称Application,指可执行的应用程序。
设计模式:Design Pattern,是一套被反复使用、多数人知晓的、经过分类的、代码设计经验的总结。设计模式使代码编写真正工程化,设计模式是软件工程的基石脉络,如同大厦的结构一样。
http:超文本传输协议(HTTP,HyperText Transfer Protocol),是互联网上应用较为广泛的一种网络协议。所有的WWW文件都必须遵守这个标准。
https:全称Hyper Text Transfer Protocol over Secure Socket Layer,是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。
图1是根据本发明一个实施例的网络请求处理方法的主要流程示意图。如图1所示,本发明实施例的网络请求处理方法包括:
步骤S101、在接收到APP发起的网络请求之后,根据所述网络请求携带的接口级别获取对应的请求处理策略。
其中,所述网络请求可包括URL地址、接口级别以及其他请求参数。具体实施时,所述网络请求可以是基于http协议、https协议或者其他协议的网络请求。
示例性地,假设网络请求的接口级别分为四个等级(level),分别用1、2、3、4表示,其中,接口级别“1”对应的请求处理策略为不加密的策略,接口级别“2”对应的请求处理策略为简单加密的策略,接口级别“3”对应的请求处理策略为高级别加密的策略,接口级别“4”对应的请求处理策略为压缩参数的策略。
步骤S102、基于所述对应的请求处理策略对所述网络请求进行处理。
示例性地,假设所述对应的请求处理策略为简单加密的策略,则可基于具体的请求处理策略对所述网络请求进行简单加密处理;假设所述对应的请求处理策略为高级别加密的策略,则可基于具体的请求处理策略对所述网络请求进行高级别加密处理。
在步骤S101和步骤S102中,所示子流程的程序代码可采用策略模式构建。策略模式是一种设计模式,其定义了一系列的算法,并将每一个算法封装起来,并且使它们还可以相互替换。也就是说,令算法独立于使用它的客户而独立变化。在策略模式中,主要包括三种角色:环境角色、抽象策略角色、具体策略角色。其中,环境(Context)角色持有一个抽象策略(Strategy)角色的引用,也叫上下文;抽象策略(Strategy)角色是一个抽象角色,通常由一个接口或一个抽象类实现;具体策略(ConcreteStrategy)角色包装了具体的算法和行为。具体到本发明实施例中,步骤S101所示子流程可由“抽象策略角色”执行,步骤S102所示子流程可由“具体策略角色”执行。通过步骤S101与步骤S102,使得在测试阶段网络请求的接口级别发生切换时,只需修改对应的请求处理策略即可,而整个网络请求处理流程无需变更,极大地提高了网络请求处理的灵活性。
步骤S103、在对所述网络请求处理成功的情况下,将处理后的网络请求发送至服务端。
在该步骤中,在对所述网络请求处理成功的情况下,可将处理后的网络请求直接委托给底层网络库,以将处理后的网络请求发送至指定的服务端。具体实施时,所述底层网络库可根据需要选用okhttp3、AFNetWorking或者其他第三方网络库。
在本发明实施例中,通过以上步骤能够针对不同的网络请求进行不同的处理。而移动端APP只需关注自己的请求、并在请求中携带接口级别,即可通过对应的请求处理策略对网络请求进行处理。进而,极大提高了移动端APP处理各种网络请求的能力,满足了不同场景(比如支付场景、登录场景等)下的网络请求处理需求;大大降低了APP开发人员针对不同网络请求进行处理所需的工作量,使得APP开发人员能够专注于业务的处理;提高了代码的复用性,使得在不同级别接口切换时只需改变对应的请求处理策略即可,而整个网络请求处理流程无需变更,极大地提高了网络请求处理的灵活性。
图2a是根据本发明另一实施例的网络请求处理方法的部分流程示意图,图2b是根据本发明另一实施例的网络请求处理方法的另一部分流程示意图。如图2a和图2b所示,本发明实施例的网络请求处理方法包括:
步骤S201、在接收到APP发起的网络请求之后,根据所述网络请求携带的接口级别获取对应的请求处理策略。
其中,所述APP可为设置在移动端(比如手机、平板电脑等)的APP。所述网络请求可包括URL地址、接口级别以及其他请求参数。具体实施时,所述网络请求可以是基于http协议、https协议或者其他协议的网络请求。
示例性地,假设网络请求的接口级别分为四个等级(level),分别用1、2、3、4表示,其中,接口级别“1”对应的请求处理策略为不加密的策略,接口级别“2”对应的请求处理策略为简单加密的策略,接口级别“3”对应的请求处理策略为高级别加密的策略,接口级别“4”对应的请求处理策略为压缩参数的策略。
步骤S202、基于所述对应的请求处理策略对所述网络请求进行处理。
示例性地,假设所述对应的请求处理策略为简单加密的策略,则可基于具体的请求处理策略对所述网络请求进行简单加密处理;假设所述对应的请求处理策略为高级别加密的策略,则可基于具体的请求处理策略对所述网络请求进行高级别加密处理。
在步骤S201和步骤S202中,所示子流程的程序代码可采用策略模式构建。策略模式是一种设计模式,其定义了一系列的算法,并将每一个算法封装起来,并且使它们还可以相互替换。也就是说,令算法独立于使用它的客户而独立变化。在策略模式中,主要包括三种角色:环境角色、抽象策略角色、具体策略角色。其中,环境(Context)角色持有一个抽象策略(Strategy)角色的引用,也叫上下文;抽象策略(Strategy)角色是一个抽象角色,通常由一个接口或一个抽象类实现;具体策略(ConcreteStrategy)角色包装了具体的算法和行为。具体到本发明实施例中,步骤S201所示子流程可由“抽象策略角色”执行,步骤S202所示子流程可由“具体策略角色”执行。
步骤S203、在对所述网络请求处理成功的情况下,将处理后的网络请求发送至服务端。
在该步骤中,在对所述网络请求处理成功的情况下,可将处理后的网络请求直接委托给底层网络库,以将处理后的网络请求发送至指定的服务端。具体实施时,所述底层网络库可根据需要选用okhttp3、AFNetWorking或者其他第三方网络库。
步骤S204、在对所述网络请求处理失败的情况下,通过回调方式将网络请求处理失败的信息发送至所述APP。
步骤S205、在接收到所述服务端发送的针对所述网络请求的响应之后,根据所述网络请求携带的接口级别获取对应的响应处理策略。
具体实施时,可通过底层网络库获取服务端发送的针对所述网络请求的原始响应数据。在获取原始响应数据之后,可采用包装器设计模式对该原始响应数据进行包装,具体通过步骤S205和步骤S206实现。这样一来,移动端APP只需关注包装后的响应,无需关心原始响应数据。
示例性地,在该步骤中,假设网络请求的接口级别分为四个等级(level),分别用1、2、3、4表示,其中,接口级别“1”对应的响应处理策略为明文传输的策略,接口级别“2”对应的响应处理策略为简单解密的策略,接口级别“3”对应的请求处理策略为高级别解密的策略,接口级别“4”对应的请求处理策略为解压缩的策略。
步骤S206、基于所述对应的响应处理策略对所述响应进行处理。
示例性地,假设所述对应的响应处理策略为简单解密的策略,则可基于具体的响应处理策略对所述响应进行简单解密处理;假设所述对应的响应处理策略为高级别解密的策略,则可基于具体的响应处理策略对所述响应进行高级别解密处理。
在步骤S205和步骤S206中,所示子流程的程序代码除了采用包装器设计模式之外,还采用了策略模式。策略模式定义了一系列的算法,并将每一个算法封装起来,并且使它们还可以相互替换。也就是说,令算法独立于使用它的客户而独立变化。在策略模式中,主要包括三种角色:环境角色、抽象策略角色、具体策略角色。其中,环境(Context)角色持有一个抽象策略(Strategy)角色的引用,也叫上下文;抽象策略(Strategy)角色是一个抽象角色,通常由一个接口或一个抽象类实现;具体策略(ConcreteStrategy)角色包装了具体的算法和行为。具体到本发明实施例中,步骤S205所示子流程可由“抽象策略角色”执行,步骤S206所示子流程可由“具体策略角色”执行。
步骤S207、在对所述响应处理成功的情况下,将处理后的响应发送至所述APP。
在该步骤中,在对所述响应请求处理成功的情况下,可将处理后的响应直接委托给底层网络库,以将处理后的响应发送至指定的APP。具体实施时,所述底层网络库可根据需要选用okhttp3、AFNetWorking或者其他第三方网络库。
步骤S208、在对所述响应处理失败的情况下,通过回调方式将响应处理失败的信息发送至所述服务端。
进一步,本发明实施例的方法还可包括以下步骤:配置网络请求的接口级别,以及不同接口级别对应的请求处理策略和响应处理策略。通过这一步骤,能够自定义网络请求的接口级别,进而根据接口级别对网络请求进行加工处理,以满足第三方sdk以及不同服务器所识别的数据格式的需求。
在本发明实施例中,通过以上步骤能够针对不同的网络请求进行不同的处理。而移动端APP只需关注自己的请求、并在请求中携带接口级别,即可通过对应的请求处理策略对网络请求进行处理。进而,极大提高了移动端APP处理各种网络请求的能力,满足了不同场景(比如支付场景、登录场景等)下的网络请求处理需求;大大降低了APP开发人员针对不同网络请求进行处理所需的工作量,使得APP开发人员能够专注于业务的处理;提高了代码的复用性,使得在不同级别接口切换时只需改变对应的请求处理策略即可,而整个网络请求处理流程无需变更,极大地提高了网络请求处理的灵活性。
图3是根据本发明一个实施例的网络请求处理装置的主要模块示意图。如图3所示,本发明实施例的网络请求处理装置300包括:请求处理模块301、发送模块302。
请求处理模块301,用于在接收到APP发起的网络请求之后,根据所述网络请求携带的接口级别获取对应的请求处理策略。
其中,所述网络请求可包括URL地址、接口级别以及其他请求参数。具体实施时,所述网络请求可以是基于http协议、https协议或者其他协议的网络请求。
示例性地,假设网络请求的接口级别分为四个等级(level),分别用1、2、3、4表示,其中,接口级别“1”对应的请求处理策略为不加密的策略,接口级别“2”对应的请求处理策略为简单加密的策略,接口级别“3”对应的请求处理策略为高级别加密的策略,接口级别“4”对应的请求处理策略为压缩参数的策略。
请求处理模块301,还用于基于所述对应的请求处理策略对所述网络请求进行处理。
示例性地,假设所述对应的请求处理策略为简单加密的策略,则请求处理模块301可基于具体的请求处理策略对所述网络请求进行简单加密处理;假设所述对应的请求处理策略为高级别加密的策略,则请求处理模块301可基于具体的请求处理策略对所述网络请求进行高级别加密处理。
请求处理模块301所执行的功能可采用策略模式构建。策略模式是一种设计模式,其定义了一系列的算法,并将每一个算法封装起来,并且使它们还可以相互替换。也就是说,令算法独立于使用它的客户而独立变化。在策略模式中,主要包括三种角色:环境角色、抽象策略角色、具体策略角色。其中,环境(Context)角色持有一个抽象策略(Strategy)角色的引用,也叫上下文;抽象策略(Strategy)角色是一个抽象角色,通常由一个接口或一个抽象类实现;具体策略(ConcreteStrategy)角色包装了具体的算法和行为。具体到本发明实施例中,“根据所述网络请求携带的接口级别获取对应的请求处理策略”可理解为由“抽象策略角色”执行,“基于所述对应的请求处理策略对所述网络请求进行处理”可理解为由“具体策略角色”执行。通过设置请求处理模块301,使得在测试阶段网络请求的接口级别发生切换时,只需修改对应的请求处理策略即可,而整个网络请求处理流程无需变更,极大地提高了网络请求处理的灵活性。
发送模块302,用于在对所述网络请求处理成功的情况下,将处理后的网络请求发送至服务端。
具体地,在对所述网络请求处理成功的情况下,可将处理后的网络请求直接委托给底层网络库,以将处理后的网络请求发送至指定的服务端。具体实施时,所述底层网络库可根据需要选用okhttp3、AFNetWorking或者其他第三方网络库。
在本发明实施例中,通过以上装置能够针对不同的网络请求进行不同的处理。而移动端APP只需关注自己的请求、并在请求中携带接口级别,即可通过对应的请求处理策略对网络请求进行处理。进而,极大提高了移动端APP处理各种网络请求的能力,满足了不同场景(比如支付场景、登录场景等)下的网络请求处理需求;大大降低了APP开发人员针对不同网络请求进行处理所需的工作量,使得APP开发人员能够专注于业务的处理;提高了代码的复用性,使得在不同级别接口切换时只需改变对应的请求处理策略即可,而整个网络请求处理流程无需变更,极大地提高了网络请求处理的灵活性。
图4是根据本发明另一实施例的网络请求处理装置的主要模块示意图。如图4所示,本发明实施例的网络请求处理装置400包括:请求处理模块401、发送模块402、响应处理模块403。
请求处理模块401,用于在接收到APP发起的网络请求之后,根据所述网络请求携带的接口级别获取对应的请求处理策略。
其中,所述APP可为设置在移动端(比如手机、平板电脑等)的APP。所述网络请求可包括URL地址、接口级别以及其他请求参数。具体实施时,所述网络请求可以是基于http协议、https协议或者其他协议的网络请求。
示例性地,假设网络请求的接口级别分为四个等级(level),分别用1、2、3、4表示,其中,接口级别“1”对应的请求处理策略为不加密的策略,接口级别“2”对应的请求处理策略为简单加密的策略,接口级别“3”对应的请求处理策略为高级别加密的策略,接口级别“4”对应的请求处理策略为压缩参数的策略。
请求处理模块401,还用于基于所述对应的请求处理策略对所述网络请求进行处理。
示例性地,假设所述对应的请求处理策略为简单加密的策略,则请求处理模块401可基于具体的请求处理策略对所述网络请求进行简单加密处理;假设所述对应的请求处理策略为高级别加密的策略,则请求处理模块401可基于具体的请求处理策略对所述网络请求进行高级别加密处理。
进一步,在执行对所述网络请求进行处理这一功能时,请求处理模块又可进一步包括:请求头处理单元、请求体处理单元。请求头处理单元用于处理所述网络请求的请求头,比如添加公共的请求头信息,如用户信息、地区信息、语言信息等;请求体处理单元用于处理所述网络请求的请求体,比如进行参数压缩、加密或将数据拼接成json(是一种轻量级的数据交换格式)或其他格式等。
请求处理模块401所执行的功能可采用策略模式构建。策略模式是一种设计模式,其定义了一系列的算法,并将每一个算法封装起来,并且使它们还可以相互替换。也就是说,令算法独立于使用它的客户而独立变化。在策略模式中,主要包括三种角色:环境角色、抽象策略角色、具体策略角色。其中,环境(Context)角色持有一个抽象策略(Strategy)角色的引用,也叫上下文;抽象策略(Strategy)角色是一个抽象角色,通常由一个接口或一个抽象类实现;具体策略(ConcreteStrategy)角色包装了具体的算法和行为。具体到本发明实施例中,“根据所述网络请求携带的接口级别获取对应的请求处理策略”可理解为由“抽象策略角色”执行,“基于所述对应的请求处理策略对所述网络请求进行处理”可理解为由“具体策略角色”执行。
发送模块402,用于在对所述网络请求处理成功的情况下,将处理后的网络请求发送至服务端;发送模块402,还用于在对所述网络请求处理失败的情况下,通过回调方式将网络请求处理失败的信息发送至所述APP。
响应处理模块403,用于在接收到所述服务端发送的针对所述网络请求的响应之后,根据所述网络请求携带的接口级别获取对应的响应处理策略。
具体实施时,可通过底层网络库获取服务端发送的针对所述网络请求的原始响应数据。在获取原始响应数据之后,响应处理模块403可采用包装器设计模式对该原始响应数据进行包装,具体可通过“根据所述网络请求携带的接口级别获取对应的响应处理策略”和“基于所述对应的响应处理策略对所述响应进行处理”两个子流程实现。这样一来,移动端APP只需关注包装后的响应,无需关心原始响应数据。
示例性地,假设网络请求的接口级别分为四个等级(level),分别用1、2、3、4表示,其中,接口级别“1”对应的响应处理策略为明文传输的策略,接口级别“2”对应的响应处理策略为简单解密的策略,接口级别“3”对应的请求处理策略为高级别解密的策略,接口级别“4”对应的请求处理策略为解压缩的策略。
响应处理模块403,还用于基于所述对应的响应处理策略对所述响应进行处理。
示例性地,假设所述对应的响应处理策略为简单解密的策略,则响应处理模块403可基于具体的响应处理策略对所述响应进行简单解密处理;假设所述对应的响应处理策略为高级别解密的策略,则响应处理模块403可基于具体的响应处理策略对所述响应进行高级别解密处理。
进一步,在执行对所述响应进行处理这一功能时,响应处理模块又可进一步包括:响应头处理单元、响应体处理单元。响应头处理单元用于处理所述响应的响应头,比如更新cookie信息等;响应体处理单元用于处理所述响应的响应体,比如进行解压、解密或将json格式转化为具体的数据对象等操作。
响应处理模块403除了采用包装器设计模式之外,还采用了策略模式。策略模式定义了一系列的算法,并将每一个算法封装起来,并且使它们还可以相互替换。也就是说,令算法独立于使用它的客户而独立变化。在策略模式中,主要包括三种角色:环境角色、抽象策略角色、具体策略角色。其中,环境(Context)角色持有一个抽象策略(Strategy)角色的引用,也叫上下文;抽象策略(Strategy)角色是一个抽象角色,通常由一个接口或一个抽象类实现;具体策略(ConcreteStrategy)角色包装了具体的算法和行为。具体到本发明实施例中,“根据所述网络请求携带的接口级别获取对应的响应处理策略”可理解为由“抽象策略角色”执行,“基于所述对应的响应处理策略对所述响应进行处理”可理解为由“具体策略角色”执行。
发送模块402,还用于在对所述响应处理成功的情况下,将处理后的响应发送至所述APP;发送模块402,还用于在对所述响应处理失败的情况下,通过回调方式将响应处理失败的信息发送至所述服务端。
具体地,在对所述响应请求处理成功的情况下,可将处理后的响应直接委托给底层网络库,以将处理后的响应发送至指定的APP。具体实施时,所述底层网络库可根据需要选用okhttp3、AFNetWorking或者其他第三方网络库。
进一步,本发明实施例的装置还可包括:配置模块,用于配置网络请求的接口级别,以及不同接口级别对应的请求处理策略和响应处理策略。通过设置配置模块,能够自定义网络请求的接口级别,进而根据接口级别对网络请求进行加工处理,以满足第三方sdk以及不同服务器所识别的数据格式的需求。
在本发明实施例中,通过以上装置能够针对不同的网络请求进行不同的处理。而移动端APP只需关注自己的请求、并在请求中携带接口级别,即可通过对应的请求处理策略对网络请求进行处理。进而,极大提高了移动端APP处理各种网络请求的能力,满足了不同场景(比如支付场景、登录场景等)下的网络请求处理需求;大大降低了APP开发人员针对不同网络请求进行处理所需的工作量,使得APP开发人员能够专注于业务的处理;提高了代码的复用性,使得在不同级别接口切换时只需改变对应的请求处理策略即可,而整个网络请求处理流程无需变更,极大地提高了网络请求处理的灵活性。
图5示出了可以应用本发明实施例的网络请求处理方法或网络请求处理装置的示例性系统架构500。
如图5所示,系统架构500可以包括终端设备501、502、503,网络504和服务器505。网络504用以在终端设备501、502、503和服务器505之间提供通信链路的介质。网络504可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备501、502、503通过网络504与服务器505交互,以接收或发送消息等。终端设备501、502、503上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等。
终端设备501、502、503可以是具有显示屏并且支持网页浏览的各种电子设备,优选为智能手机、平板电脑、膝上型便携计算机等移动端设备。
服务器505可以是提供各种服务的服务器,例如对用户利用终端设备501、502、503所浏览的购物类网站提供支持的后台管理服务器。后台管理服务器可以对接收到的网络请求(比如登录请求、数据获取请求、支付请求等)等数据进行分析等处理,并将处理结果反馈给终端设备。
需要说明的是,本发明实施例所提供的网络请求处理方法一般由终端设备执行,相应地,网络请求处理装置一般设置于终端设备中。
应该理解,图5中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
图6示出了适于用来实现本发明实施例的电子设备的计算机系统600的结构示意图。图6示出的电子设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图6所示,计算机系统600包括中央处理单元(CPU)601,其可以根据存储在只读存储器(ROM)602中的程序或者从存储部分608加载到随机访问存储器(RAM)603中的程序而执行各种适当的动作和处理。在RAM 603中,还存储有系统600操作所需的各种程序和数据。CPU 601、ROM 602以及RAM 603通过总线604彼此相连。输入/输出(I/O)接口605也连接至总线604。
以下部件连接至I/O接口605:包括键盘、鼠标等的输入部分606;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分607;包括硬盘等的存储部分608;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分609。通信部分609经由诸如因特网的网络执行通信处理。驱动器610也根据需要连接至I/O接口605。可拆卸介质611,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器610上,以便于从其上读出的计算机程序根据需要被安装入存储部分608。
特别地,根据本发明公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分609从网络上被下载和安装,和/或从可拆卸介质611被安装。在该计算机程序被中央处理单元(CPU)601执行时,执行本发明的系统中限定的上述功能。
需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本发明实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:一种处理器包括请求处理模块、发送模块。其中,这些模块的名称在某种情况下并不构成对该模块本身的限定,例如,发送模块还可以被描述为“在对所述网络请求处理成功的情况下,将处理后的网络请求发送至服务端的模块”。
作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备执行以下流程:在接收到APP发起的网络请求之后,根据所述网络请求携带的接口级别获取对应的请求处理策略;基于所述对应的请求处理策略对所述网络请求进行处理;在对所述网络请求处理成功的情况下,将处理后的网络请求发送至服务端。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。

Claims (12)

1.一种网络请求处理方法,其特征在于,所述方法包括:
在接收到APP发起的网络请求之后,根据所述网络请求携带的接口级别获取对应的请求处理策略;
基于所述对应的请求处理策略对所述网络请求进行处理;
在对所述网络请求处理成功的情况下,将处理后的网络请求发送至服务端。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在对所述网络请求处理失败的情况下,通过回调方式将网络请求处理失败的信息发送至所述APP。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在接收到所述服务端发送的针对所述网络请求的响应之后,根据所述网络请求携带的接口级别获取对应的响应处理策略;
基于所述对应的响应处理策略对所述响应进行处理;
在对所述响应处理成功的情况下,将处理后的响应发送至所述APP。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
在对所述响应处理失败的情况下,通过回调方式将响应处理失败的信息发送至所述服务端。
5.根据权利要求3所述的方法,其特征在于,所述方法还包括:
配置网络请求的接口级别,以及不同接口级别对应的请求处理策略和响应处理策略。
6.一种网络请求处理装置,其特征在于,所述装置包括:
请求处理模块,用于在接收到APP发起的网络请求之后,根据所述网络请求携带的接口级别获取对应的请求处理策略;还用于基于所述对应的请求处理策略对所述网络请求进行处理;
发送模块,用于在对所述网络请求处理成功的情况下,将处理后的网络请求发送至服务端。
7.根据权利要求6所述的装置,其特征在于,
所述发送模块,还用于在对所述网络请求处理失败的情况下,通过回调方式将网络请求处理失败的信息发送至所述APP。
8.根据权利要求6所述的装置,其特征在于,所述装置还包括:
响应处理模块,用于在接收到所述服务端发送的针对所述网络请求的响应之后,根据所述网络请求携带的接口级别获取对应的响应处理策略;还用于基于所述对应的响应处理策略对所述响应进行处理;
所述发送模块,还用于在对所述响应处理成功的情况下,将处理后的响应发送至所述APP。
9.根据权利要求8所述的装置,其特征在于,
所述发送模块,还用于在对所述响应处理失败的情况下,通过回调方式将响应处理失败的信息发送至所述服务端。
10.根据权利要求8所述的装置,其特征在于,所述装置还包括:
配置模块,用于配置网络请求的接口级别,以及不同接口级别对应的请求处理策略和响应处理策略。
11.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1至5中任一所述的方法。
12.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1至5中任一所述的方法。
CN201810820409.6A 2018-07-24 2018-07-24 网络请求处理方法和装置 Pending CN110753020A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810820409.6A CN110753020A (zh) 2018-07-24 2018-07-24 网络请求处理方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810820409.6A CN110753020A (zh) 2018-07-24 2018-07-24 网络请求处理方法和装置

Publications (1)

Publication Number Publication Date
CN110753020A true CN110753020A (zh) 2020-02-04

Family

ID=69275443

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810820409.6A Pending CN110753020A (zh) 2018-07-24 2018-07-24 网络请求处理方法和装置

Country Status (1)

Country Link
CN (1) CN110753020A (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112351064A (zh) * 2020-09-17 2021-02-09 杭州动享互联网技术有限公司 iOS使用AFNetworking进行网络请求重定向的方法
CN112822237A (zh) * 2020-12-28 2021-05-18 北京奇艺世纪科技有限公司 网络请求传输方法及装置
CN113051540A (zh) * 2021-03-26 2021-06-29 中原银行股份有限公司 一种应用程序接口安全分级治理方法
CN113094348A (zh) * 2021-03-19 2021-07-09 北京达佳互联信息技术有限公司 日志管理方法及装置
CN113204477A (zh) * 2021-03-31 2021-08-03 北京达佳互联信息技术有限公司 应用测试方法、装置、电子设备及存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101400109A (zh) * 2007-09-30 2009-04-01 华为技术有限公司 通用业务开放接口系统和通用业务开放方法
WO2014059883A1 (zh) * 2012-10-18 2014-04-24 中兴通讯股份有限公司 一种实现交互式网络电视业务的融合设备、系统和方法
CN104639509A (zh) * 2013-11-14 2015-05-20 中国移动通信集团公司 一种业务处理方法和设备
CN105659557A (zh) * 2013-09-20 2016-06-08 甲骨文国际公司 用于单点登录的基于网络的接口集成
CN106453536A (zh) * 2016-09-29 2017-02-22 车智互联(北京)科技有限公司 一种网络请求处理方法、服务器和系统
CN108234149A (zh) * 2016-12-09 2018-06-29 沈阳美行科技有限公司 一种网络请求的管理方法和装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101400109A (zh) * 2007-09-30 2009-04-01 华为技术有限公司 通用业务开放接口系统和通用业务开放方法
WO2014059883A1 (zh) * 2012-10-18 2014-04-24 中兴通讯股份有限公司 一种实现交互式网络电视业务的融合设备、系统和方法
CN105659557A (zh) * 2013-09-20 2016-06-08 甲骨文国际公司 用于单点登录的基于网络的接口集成
CN104639509A (zh) * 2013-11-14 2015-05-20 中国移动通信集团公司 一种业务处理方法和设备
CN106453536A (zh) * 2016-09-29 2017-02-22 车智互联(北京)科技有限公司 一种网络请求处理方法、服务器和系统
CN108234149A (zh) * 2016-12-09 2018-06-29 沈阳美行科技有限公司 一种网络请求的管理方法和装置

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112351064A (zh) * 2020-09-17 2021-02-09 杭州动享互联网技术有限公司 iOS使用AFNetworking进行网络请求重定向的方法
CN112351064B (zh) * 2020-09-17 2023-04-07 杭州动享互联网技术有限公司 iOS使用AFNetworking进行网络请求重定向的方法
CN112822237A (zh) * 2020-12-28 2021-05-18 北京奇艺世纪科技有限公司 网络请求传输方法及装置
CN113094348A (zh) * 2021-03-19 2021-07-09 北京达佳互联信息技术有限公司 日志管理方法及装置
CN113094348B (zh) * 2021-03-19 2024-02-23 北京达佳互联信息技术有限公司 日志管理方法及装置
CN113051540A (zh) * 2021-03-26 2021-06-29 中原银行股份有限公司 一种应用程序接口安全分级治理方法
CN113204477A (zh) * 2021-03-31 2021-08-03 北京达佳互联信息技术有限公司 应用测试方法、装置、电子设备及存储介质
CN113204477B (zh) * 2021-03-31 2024-01-12 北京达佳互联信息技术有限公司 应用测试方法、装置、电子设备及存储介质

Similar Documents

Publication Publication Date Title
CN110601952B (zh) 多渠道消息通知发送方法和装置
CN110753020A (zh) 网络请求处理方法和装置
CN110389762B (zh) 在Android工程中处理AAR包的方法和装置
CN109154968B (zh) 用于组织内的安全且高效的通信的系统和方法
CN110377440B (zh) 信息处理方法和装置
CN113364795B (zh) 一种数据传输方法和代理服务器
CN112039826A (zh) 一种应用于小程序端的登录方法和装置
CN109814889B (zh) 用于更新源代码库的方法和装置
CN114049122A (zh) 一种业务处理方法和系统
CN110795741B (zh) 对数据进行安全性处理的方法和装置
CN111199037A (zh) 登录方法、系统和装置
CN110928571A (zh) 业务程序开发方法和装置
CN107678755B (zh) 安装包打包的方法、装置、电子设备和计算机可读介质
CN111984615B (zh) 一种共享文件的方法、装置及系统
CN109995534B (zh) 一种对应用程序进行安全认证的方法和装置
CN107547437B (zh) 应用识别方法及装置
US10482397B2 (en) Managing identifiers
CN111984616B (zh) 一种更新共享文件的方法、装置和系统
CN111984613B (zh) 一种共享文件的方法、装置和系统
CN111163156A (zh) 基于区块链的数据处理方法、设备及存储介质
CN112929453A (zh) 一种共享session数据的方法和装置
CN109657481B (zh) 数据管理方法及装置
CN111209014A (zh) 一种参数校验的方法和装置
CN113761566A (zh) 一种数据处理方法和装置
CN110851754A (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
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20200204