CN114039963B - 数据传输方法、装置、电子装置和存储介质 - Google Patents
数据传输方法、装置、电子装置和存储介质 Download PDFInfo
- Publication number
- CN114039963B CN114039963B CN202111311420.8A CN202111311420A CN114039963B CN 114039963 B CN114039963 B CN 114039963B CN 202111311420 A CN202111311420 A CN 202111311420A CN 114039963 B CN114039963 B CN 114039963B
- Authority
- CN
- China
- Prior art keywords
- data transmission
- transmission request
- function
- processing
- target data
- 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.)
- Active
Links
- 230000005540 biological transmission Effects 0.000 title claims abstract description 277
- 238000000034 method Methods 0.000 title claims abstract description 67
- 238000012545 processing Methods 0.000 claims abstract description 168
- 230000008569 process Effects 0.000 claims abstract description 25
- 238000004806 packaging method and process Methods 0.000 claims abstract description 11
- 230000006870 function Effects 0.000 claims description 129
- 238000004590 computer program Methods 0.000 claims description 15
- 238000011161 development Methods 0.000 abstract description 20
- 238000005516 engineering process Methods 0.000 abstract description 5
- 230000004044 response Effects 0.000 abstract description 5
- 238000010586 diagram Methods 0.000 description 8
- 230000006854 communication Effects 0.000 description 6
- 238000012546 transfer Methods 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 235000014510 cooky Nutrition 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000002688 persistence Effects 0.000 description 2
- 108010001267 Protein Subunits Proteins 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000000873 masking effect Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012795 verification 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/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/161—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Computer And Data Communications (AREA)
Abstract
本申请涉及一种数据传输方法、装置、电子装置和存储介质,该数据传输方法包括:获取数据传输请求,并基于数据传输请求获取处理函数,处理函数是基于预设处理流程进行编译和打包得到的具有对外接口的函数;基于处理函数判断是否存在与数据传输请求相同的历史传输请求;若存在,则将第一目标数据传输至Android应用,第一目标数据为数据库中保存的历史传输请求对应的目标数据;若不存在,则对数据传输请求进行处理以获取第二目标数据,并将第二目标数据传输至Android应用。通过本申请,解决了相关技术中存在的Android开发过程中数据传输的处理效率不高的技术问题,降低了代码开发的工作量,提高了请求的响应速度,进一步提高了Android开发过程中数据传输的处理效率。
Description
技术领域
本申请涉及数据处理领域,特别是涉及一种数据传输方法、装置、电子装置和存储介质。
背景技术
随着智能手机等终端设备的普及,Android系统及软件应用的开发也变得越来越广泛。由于Android的开发环境具有限制少、设备移植性高等特点,开发者可以修改源码以开发各种软件应用。
在开发过程中,针对Android应用运行过程中存在的大量HTTP数据传输请求,现有技术中都是基于Android自带的框架对HTTP请求进行编译和处理,每次数据传输都需要编译大量代码,对HTTP请求进行处理以传输相应的HTTP数据。当存在大量HTTP请求并且每次请求的数据量较小时,需要频繁地编译和运行大量代码,增加了代码的开发时间和复杂程度,计算成本过高且收益较低,导致开发者的工作量过大,进一步导致Android开发过程中数据传输的处理效率不高。
针对相关技术中存在的Android开发过程中数据传输的处理效率不高的技术问题,目前还没有提出有效的解决方案。
发明内容
在本实施例中提供了一种数据传输方法、装置、系统、电子装置和存储介质,以解决相关技术中Android开发过程中数据传输的处理效率不高的问题。
第一个方面,在本实施例中提供了一种数据传输方法,应用于Android应用,包括:
获取数据传输请求,并基于所述数据传输请求获取处理函数,所述处理函数是基于预设处理流程进行编译和打包得到的具有对外接口的函数;
基于所述处理函数判断是否存在与所述数据传输请求相同的历史传输请求;
若存在,则将第一目标数据传输至Android应用,所述第一目标数据为数据库中保存的历史传输请求对应的目标数据;
若不存在,则对所述数据传输请求进行处理以获取第二目标数据,并将所述第二目标数据传输至Android应用。
在其中的一些实施例中,所述对所述数据传输请求进行处理以获取第二目标数据之后还包括:
将所述数据传输请求以及第二目标数据保存至数据库。
在其中的一些实施例中,所述将第一目标数据传输至Android应用包括:
基于外部传输队列将所述第一目标数据传输至Android应用,所述外部传输队列包括基于HTTP协议的传输队列、基于TCP协议的传输队列以及基于UDP协议的传输队列中的至少一种。
在其中的一些实施例中,所述对所述数据传输请求进行处理以获取第二目标数据包括:
基于内部传输队列将所述数据传输请求传输至请求处理端,控制所述请求处理端对所述数据传输请求进行处理,并接收返回的第二目标数据。
在其中的一些实施例中,所述获取数据传输请求之前还包括:
基于所述处理函数对内部传输队列进行初始化。
在其中的一些实施例中,所述处理函数包括volley子函数和业务子函数,所述获取数据传输请求之前还包括:
建立所述volley子函数和业务子函数,以及所述volley子函数和业务子函数的函数接口,所述volley子函数用于执行所述数据传输方法,所述业务子函数用于执行对应的业务操作,所述业务操作包括:重新获取数据传输请求、域名解析、忽略本次数据传输请求、获取支付接口中的至少一种;
基于所述volley子函数和业务子函数的函数接口,建立所述处理函数。
在其中的一些实施例中,所述对所述数据传输请求进行处理以获取第二目标数据之后还包括:
基于所述处理函数获取所述volley子函数的返回值;
基于所述返回值确定对应的业务子函数的函数接口,并基于所述业务子函数的函数接口执行所述业务子函数。
第二个方面,在本实施例中提供了一种数据传输装置,应用于Android应用,包括:
获取模块,用于获取数据传输请求,并基于所述数据传输请求获取处理函数,所述处理函数是基于预设处理流程进行编译和打包得到的具有对外接口的函数;
判断模块,用于基于所述处理函数判断是否存在与所述数据传输请求相同的历史传输请求;
第一处理模块,用于若存在,则将第一目标数据传输至Android应用,所述第一目标数据为数据库中保存的历史传输请求对应的目标数据;
第二处理模块,用于若不存在,则对所述数据传输请求进行处理以获取第二目标数据,并将所述第二目标数据传输至Android应用。
第三个方面,在本实施例中提供了一种电子装置,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述第一个方面所述的数据传输方法。
第四个方面,在本实施例中提供了一种存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述第一个方面所述的数据传输方法。
与相关技术相比,在本实施例中提供的数据传输方法、装置、电子装置和存储介质,获取数据传输请求,并基于所述数据传输请求获取处理函数,所述处理函数是基于预设处理流程进行编译和打包得到的具有对外接口的函数;基于所述处理函数判断是否存在与所述数据传输请求相同的历史传输请求;若存在,则将第一目标数据传输至Android应用,所述第一目标数据为数据库中保存的历史传输请求对应的目标数据;若不存在,则对所述数据传输请求进行处理以获取第二目标数据,并将所述第二目标数据传输至Android应用。通过预先设置的处理函数对数据传输请求进行处理,以判断是否存在相同的历史传输请求,若存在则将数据库中保存的与该历史传输请求对应的目标数据传输至Android应用,若不存在才对该数据传输请求进行处理,解决了相关技术中存在的Android开发过程中数据传输的处理效率不高的技术问题,降低了代码开发的工作量,提高了请求的响应速度,进一步提高了Android开发过程中数据传输的处理效率。
本申请的一个或多个实施例的细节在以下附图和描述中提出,以使本申请的其他特征、目的和优点更加简明易懂。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是本发明一实施例的数据传输方法的终端硬件结构框图;
图2是本发明一实施例的数据传输方法的流程示意图;
图3是本发明一实施例的处理函数的封装示意图;
图4是本发明一实施例的数据传输装置的结构框图。
具体实施方式
为更清楚地理解本申请的目的、技术方案和优点,下面结合附图和实施例,对本申请进行了描述和说明。
除另作定义外,本申请所涉及的技术术语或者科学术语应具有本申请所属技术领域具备一般技能的人所理解的一般含义。在本申请中的“一”、“一个”、“一种”、“该”、“这些”等类似的词并不表示数量上的限制,它们可以是单数或者复数。在本申请中所涉及的术语“包括”、“包含”、“具有”及其任何变体,其目的是涵盖不排他的包含;例如,包含一系列步骤或模块(单元)的过程、方法和系统、产品或设备并未限定于列出的步骤或模块(单元),而可包括未列出的步骤或模块(单元),或者可包括这些过程、方法、产品或设备固有的其他步骤或模块(单元)。在本申请中所涉及的“连接”、“相连”、“耦接”等类似的词语并不限定于物理的或机械连接,而可以包括电气连接,无论是直接连接还是间接连接。在本申请中所涉及的“多个”是指两个或两个以上。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。通常情况下,字符“/”表示前后关联的对象是一种“或”的关系。在本申请中所涉及的术语“第一”、“第二”、“第三”等,只是对相似对象进行区分,并不代表针对对象的特定排序。
在本实施例中提供的方法实施例可以在终端、计算机或者类似的运算装置中执行。比如在终端上运行,图1是本实施例的数据传输方法的终端的硬件结构框图。如图1所示,终端可以包括一个或多个(图1中仅示出一个)处理器102和用于存储数据的存储器104,其中,处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置。上述终端还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述终端的结构造成限制。例如,终端还可包括比图1中所示更多或者更少的组件,或者具有与图1所示出的不同配置。
存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如在本实施例中的数据传输方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输设备106用于经由一个网络接收或者发送数据。上述的网络包括终端的通信供应商提供的无线网络。在一个实例中,传输设备106包括一个网络适配器(NetworkInterface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输设备106可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。
由于HTTP协议具有简单灵活、响应快速等优点,因而具有广泛的应用场景,在不同的应用场景下HTTP协议都有很好的扩展。在Android开发领域,由于Android中自带的框架在应对HTTP协议的复杂性扩展时,需要很多额外的业务代码对HTTP协议进行操作,增加了业务代码的复杂度,并且框架本身没有针对Android移动端频繁且小数据量的HTTP请求做过优化,导致HTTP协议的请求效率有待提高。例如,现有技术中一般通过Apache HTTPServer(简称Apache)实现基于HTTP协议的服务器和Android应用程序包之间的数据交互,在面对频繁的数据传输请求时处理效率较低。
优选的,通过volley框架对HTTP协议进行处理。Volley框架的HTTP协议通信过程简单,可以轻松传输目标数据,并且除了简单易用外,volley框架的性能相比于其他框架有了大幅提升,适合处理通信频繁且数据量不大的任务。
请参阅图2,图2是本发明一实施例的数据传输方法的流程示意图。在本实施例中,数据传输方法包括:
S202:获取数据传输请求,并基于数据传输请求获取处理函数,处理函数是基于预设处理流程进行编译和打包得到的具有对外接口的函数。
示例性地,获取Android应用端发送的数据传输请求,基于该数据传输请求调用处理函数,以用于对数据传输请求进行处理。具体的,获取数据传输请求后,通过处理函数的函数接口,调用处理函数对数据传输请求进行处理。其中,处理函数是基于预设的处理流程进行设置和封装后得到的,包括作为对外接口的函数名以及对数据传输请求进行处理的函数体。
S204:基于处理函数判断是否存在与数据传输请求相同的历史传输请求。
示例性地,基于处理函数对数据传输请求进行处理,并判断是否存在与当前的数据传输请求相同的历史传输请求。其中,历史传输请求是指当前的数据传输请求之前的数据传输请求。可选的,历史传输请求保存在存储单元的指定地址,以方便对历史传输请求进行访问,并进一步判断历史传输请求中是否存在与当前的数据传输请求相同的请求。
S206:若存在,则将第一目标数据传输至Android应用,第一目标数据为数据库中保存的历史传输请求对应的目标数据。
示例性地,通过处理函数判断是否存在与当前数据传输请求相同的历史传输请求,若存在,则获取该历史传输请求对应的第一目标数据,并将第一目标数据传输至Android应用。其中,第一目标数据是指历史传输请求所请求传输的目标数据。具体的,第一目标数据可以存放于数据库的指定地址,并与对应的历史传输请求的存储地址建立映射关系,或者将第一目标数据与对应的历史传输请求一起存放于指定的存储地址。
S208:若不存在,则对数据传输请求进行处理以获取第二目标数据,并将第二目标数据传输至Android应用。
示例性地,通过处理函数判断是否存在与当前数据传输请求相同的历史传输请求,若不存在,则通过处理函数对数据传输请求进行处理,以获取该数据传输请求所请求传输的第二目标数据,并将该第二目标数据传输至Android应用。
本实施例获取数据传输请求,并基于数据传输请求获取处理函数,处理函数是基于预设处理流程进行编译和打包得到的具有对外接口的函数;基于处理函数判断是否存在与数据传输请求相同的历史传输请求;若存在,则将第一目标数据传输至Android应用,第一目标数据为数据库中保存的历史传输请求对应的目标数据;若不存在,则对数据传输请求进行处理以获取第二目标数据,并将第二目标数据传输至Android应用。通过预先设置的处理函数对数据传输请求进行处理,以判断是否存在相同的历史传输请求,若存在则将数据库中保存的与该历史传输请求对应的目标数据传输至Android应用,若不存在才对该数据传输请求进行处理,解决了相关技术中存在的Android开发过程中数据传输的处理效率不高的技术问题,降低了代码开发的工作量,提高了请求的响应速度,进一步提高了Android开发过程中数据传输的处理效率。
在另一个实施例中,对数据传输请求进行处理以获取第二目标数据之后还包括:
将数据传输请求以及第二目标数据保存至数据库。
示例性地,通过处理函数判断是否存在与当前数据传输请求相同的历史传输请求,若不存在,则通过处理函数对数据传输请求进行处理,以获取该数据传输请求所请求传输的第二目标数据,并将该数据传输请求以及对应的第二目标数据保存至数据库。
本实施例将数据传输请求以及对应的第二目标数据保存至数据库,在下次对相同的数据传输请求进行处理时,本次数据传输请求则作为历史传输请求,本次数据传输请求对应的第二目标数据则作为历史传输请求对应的第一目标数据,从而直接将该第一目标数据传输至Android应用,无需进行重复处理,降低了计算成本,进而提高了数据传输的效率。
在另一个实施例中,将第一目标数据传输至Android应用包括:
基于外部传输队列将第一目标数据传输至Android应用,外部传输队列包括基于HTTP协议的传输队列、基于TCP协议的传输队列以及基于UDP协议的传输队列中的至少一种。
示例性地,通过外部传输队列将第一目标数据传输至Android应用。其中,队列是一种操作受到限制的线性表,其特点在于只允许对线性表的前端进行删除操作,而表的后端只能进行插入操作。当队列中没有元素时,则为空队列。外部传输队列是指用于在服务器与Android应用之间进行数据传输的队列。具体的,外部传输队列的传输协议至少包括HTTP协议、TCP协议、UDP协议等。可以理解的,以上传输协议仅仅作为示例,外部传输队列还可以基于其他单个或多个传输协议进行传输。
示例性地,上述外部传输队列还可应用于将第二目标数据传输至Android应用,对此本实施例不再重复赘述。
本实施例基于外部传输队列将第一目标数据传输至Android应用,外部传输队列包括基于HTTP协议的传输队列、基于TCP协议的传输队列以及基于UDP协议的传输队列中的至少一种。通过稳定高效的传输协议将第一目标数据传输至Android应用,提高了数据传输的安全性。
在另一个实施例中,对数据传输请求进行处理以获取第二目标数据包括:
基于内部传输队列将数据传输请求传输至请求处理端,控制请求处理端对数据传输请求进行处理,并接收返回的第二目标数据。
示例性地,通过处理函数判断是否存在与当前数据传输请求相同的历史传输请求,若不存在,则将当前数据传输请求转发到内部传输队列,通过内部传输队列将数据传输请求传输至请求处理端,以控制请求处理端对数据传输请求进行处理。等待请求处理端对数据传输请求进行处理,并接收请求处理端处理后返回的第二目标数据。
本实施例基于内部传输队列将数据传输请求传输至请求处理端,控制请求处理端对数据传输请求进行处理,并接收返回的第二目标数据。通过多个数据处理主体实现异端处理,以提高数据传输请求的处理效率。
在另一个实施例中,获取数据传输请求之前还包括:
基于处理函数对内部传输队列进行初始化。
示例性地,在获取数据传输请求之前,通过处理函数的函数接口调用处理函数,进而对内部传输队列进行初始化,以清空内部传输队列的数据元素。
在其中一个具体实施例中,通过volley库实现上述数据传输方法。volley库包括网络请求队列、缓存队列以及线程池。其中,线程池用于遍历网络请求队列以及缓存队列,并分配其队列地址;当获取到缓存队列的缓存接口后,依次将缓存接口存入HTTP协议栈,进而处理数据传输请求。具体的,对网络请求队列以及缓存队列进行初始化,检测到初始化成功结果后进入等待状态,以等待并接收网络请求;当接收到网络请求后进行内部转发;首先将网络请求转发到缓存队列,并判断是否存在相同的历史网络请求,若存在则获取本地缓存的请求数据并返回至数据请求端;若不存在相同的历史网络请求,则将网络请求转发到网络请求队列,网络请求队列将请求发送至系统协议栈进行处理,并等待处理结果;当获取处理结果后存入本地缓存,供缓存队列进行后续使用。当缓存队列和网络请求队列为空是处于等待状态,不消耗网络计算资源。
在另一个实施例中,处理函数包括volley子函数和业务子函数,获取数据传输请求之前还包括:
步骤1:建立volley子函数和业务子函数,以及volley子函数和业务子函数的函数接口,volley子函数用于执行数据传输方法,业务子函数用于执行对应的业务操作,业务操作包括:重新获取数据传输请求、域名解析、忽略本次数据传输请求、获取支付接口中的至少一种;
步骤2:基于volley子函数和业务子函数的函数接口,建立处理函数。
示例性地,基于预设处理流程,建立volley子函数以及业务子函数,并对外提供volley子函数和业务子函数的函数接口。调用volley子函数和业务子函数的函数接口,建立处理函数。其中,volley子函数用于执行数据传输方法,即通过volley子函数获取数据传输请求并对数据传输请求进行进一步处理,以获取并返回处理结果,业务子函数用于执行其他的业务操作,其中,业务操作至少包括:重新获取数据传输请求、域名解析、忽略本次数据传输请求、获取支付接口等。例如,当数据传输失败时,业务子函数基于失败结果重新获取数据传输请求,并再次进行进一步的请求处理任务。
请参阅图3,图3是本发明一实施例的处理函数的封装示意图。在其中一个具体实施例中,处理函数包括volley子函数和业务子函数,建立处理函数的接口,并将处理函数归入到HTTP库的一部分,使得HTTP库可基于该处理函数的接口调用处理函数。基于处理函数,HTTP库可以对volley子函数进行管理,例如在对自身进行初始化的同时对volley子函数进行初始化,控制volley子函数对缓存队列以及网络请求队列进行初始化等操作;或者接收网络请求,并将网络请求转发至内部的volley子函数进行处理,等待并接收volley子函数的处理结果,最后将处理结果输出至网络请求发送端。同时,基于处理函数,HTTP库还可以对业务子函数进行管理和调用,使得业务子函数可以执行相应的业务操作,例如通过登录接口实现cookie持久化、出错重试、302处理、实现支付接口、请求接口中加入其他业务逻辑等。
本实施例建立volley子函数和业务子函数,以及volley子函数和业务子函数的函数接口,volley子函数用于执行数据传输方法,业务子函数用于执行对应的业务操作,业务操作包括:重新获取数据传输请求、域名解析、忽略本次数据传输请求、获取支付接口中的至少一种;基于volley子函数和业务子函数的函数接口,建立处理函数。通过volley子函数和业务子函数对HTTP协议的各种业务性的扩展做了封装,同时基于volley子函数和业务子函数的接口再次对业务系统的HTTP协议进行二次封装,得到封装后的处理函数,降低了业务代码的复杂度和开发成本,提高了业务代码的可靠性和扩展性,进一步提高可数据传输请求的响应速度。
在另一个实施例中,对数据传输请求进行处理以获取第二目标数据之后还包括:
步骤1:基于处理函数获取volley子函数的返回值;
步骤2:基于返回值确定对应的业务子函数的函数接口,并基于业务子函数的函数接口执行业务子函数。
示例性地,处理函数基于volley子函数的接口调用volley子函数,以对数据传输请求进行处理,并接收volley处理后输出的返回值;基于返回值确定对应的业务子函数,通过调用该业务子函数的函数接口执行对应的业务操作。其中,返回值与业务子函数的对应关系可以预先进行设置。
在其中一个具体实施例中,处理函数的代码示意如下:
具体的,HttpRequest函数提供了初始化接口:
HttpRequest.instance().init(Context,HttpRequestInitConfig)
HttpRequest函数内部包含了volley子函数,volley子函数会在HttpRequest函数进行初始化时自动对内部的网络请求队列以及对应的线程池进行初始化。通过HttpRequest函数提供的接口调用volley子函数的相关功能,并且对volley子函数的整个执行周期进行管理,volley子函数对HttpRequest函数外部屏蔽所有的功能。此外,HttpRequest函数对每个volley请求的开始和结束都在内部执行一次,在该执行过程中返回处理结果和返回值,并根据返回值确定下一步的功能。其中,该功能包括但不限于:出错自动重新请求一次;对于302请求,自动重新请求不超过10次;解析字段,并将解析结果保存到相关文件中,在同域请求时,根据失效时间将文件的内容读取设置到请求头部中的Cookies字段以实现cookie持久化;在请求开始前,向调用函数方提供接口,以使得调用函数自行进行域名解析;针对HTTP请求,向调用函数方提供忽略规则的接口,以忽略HTTPS证书校验失败的问题。
在另一个具体实施例中,业务操作为验证网络请求中是否包含业务字段token,若不存在,则请求失败;若token过期,则返回特定的返回值。具体涉及4个业务子函数,包括序号分别为1、2、3、4的四个接口。基于HttpRequest封装4个业务子函数,在业务子函数中设置回调功能,并提供对外的4个函数接口。通过解析返回的token处理结果并缓存,若是特定的返回值,则拦截本次返回,内部重新获取token字段。在接收到新的token后,再次发送token处理请求,并将结果返回给调用函数方。本实施例中内部重新获取token的动作对外完全透明,因此方便快速的实现业务操作。在调用4个业务子函数时,可以获取之前缓存的token并设置到请求的头部中,所执行的动作同样是对外透明的。
需要说明的是,在上述流程中或者附图的流程图中示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
在本实施例中还提供了一种。。。装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。以下所使用的术语“模块”、“单元”、“子单元”等可以实现预定功能的软件和/或硬件的组合。尽管在以下实施例中所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图4是本实施例的数据传输装置的结构框图,如图4所示,该装置包括:
获取模块,用于获取数据传输请求,并基于数据传输请求获取处理函数,处理函数是基于预设处理流程进行编译和打包得到的具有对外接口的函数;
判断模块,用于基于处理函数判断是否存在与数据传输请求相同的历史传输请求;
第一处理模块,用于若存在,则将第一目标数据传输至Android应用,第一目标数据为数据库中保存的历史传输请求对应的目标数据;
第一处理模块,还用于基于外部传输队列将第一目标数据传输至Android应用,外部传输队列包括基于HTTP协议的传输队列、基于TCP协议的传输队列以及基于UDP协议的传输队列中的至少一种;
第二处理模块,用于若不存在,则对数据传输请求进行处理以获取第二目标数据,并将第二目标数据传输至Android应用;
第二处理模块,还用于基于内部传输队列将数据传输请求传输至请求处理端,控制请求处理端对数据传输请求进行处理,并接收返回的第二目标数据;
第二处理模块,还用于基于处理函数对内部传输队列进行初始化;
数据传输装置,还包括保存模块;
保存模块,用于将数据传输请求以及第二目标数据保存至数据库;
数据传输装置,还包括建立模块;
建立模块,用于建立volley子函数和业务子函数,以及volley子函数和业务子函数的函数接口,volley子函数用于执行数据传输方法,业务子函数用于执行对应的业务操作,业务操作包括:重新获取数据传输请求、域名解析、忽略本次数据传输请求、获取支付接口中的至少一种;
基于volley子函数和业务子函数的函数接口,建立处理函数;
建立模块,还用于对数据传输请求进行处理以获取第二目标数据之后还包括:
基于处理函数获取volley子函数的返回值;
基于返回值确定对应的业务子函数的函数接口,并基于业务子函数的函数接口执行业务子函数。
需要说明的是,上述各个模块可以是功能模块也可以是程序模块,既可以通过软件来实现,也可以通过硬件来实现。对于通过硬件来实现的模块而言,上述各个模块可以位于同一处理器中;或者上述各个模块还可以按照任意组合的形式分别位于不同的处理器中。
在本实施例中还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
可选地,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
S1,获取数据传输请求,并基于数据传输请求获取处理函数,处理函数是基于预设处理流程进行编译和打包得到的具有对外接口的函数;
S2,基于处理函数判断是否存在与数据传输请求相同的历史传输请求;
S3,若存在,则将第一目标数据传输至Android应用,第一目标数据为数据库中保存的历史传输请求对应的目标数据;
S4,若不存在,则对数据传输请求进行处理以获取第二目标数据,并将第二目标数据传输至Android应用。
需要说明的是,在本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,在本实施例中不再赘述。
此外,结合上述实施例中提供的数据传输方法,在本实施例中还可以提供一种存储介质来实现。该存储介质上存储有计算机程序;该计算机程序被处理器执行时实现上述实施例中的任意一种数据传输方法。
应该明白的是,这里描述的具体实施例只是用来解释这个应用,而不是用来对它进行限定。根据本申请提供的实施例,本领域普通技术人员在不进行创造性劳动的情况下得到的所有其它实施例,均属本申请保护范围。
显然,附图只是本申请的一些例子或实施例,对本领域的普通技术人员来说,也可以根据这些附图将本申请适用于其他类似情况,但无需付出创造性劳动。另外,可以理解的是,尽管在此开发过程中所做的工作可能是复杂和漫长的,但是,对于本领域的普通技术人员来说,根据本申请披露的技术内容进行的某些设计、制造或生产等更改仅是常规的技术手段,不应被视为本申请公开的内容不足。
“实施例”一词在本申请中指的是结合实施例描述的具体特征、结构或特性可以包括在本申请的至少一个实施例中。该短语出现在说明书中的各个位置并不一定意味着相同的实施例,也不意味着与其它实施例相互排斥而具有独立性或可供选择。本领域的普通技术人员能够清楚或隐含地理解的是,本申请中描述的实施例在没有冲突的情况下,可以与其它实施例结合。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对专利保护范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。
Claims (8)
1.一种数据传输方法,应用于Android应用,其特征在于,包括:
获取数据传输请求,并基于所述数据传输请求获取处理函数,所述处理函数是基于预设处理流程进行编译和打包得到的具有对外接口的函数;
基于所述处理函数判断是否存在与所述数据传输请求相同的历史传输请求;
若存在,则将第一目标数据传输至Android应用,所述第一目标数据为数据库中保存的历史传输请求对应的目标数据;
若不存在,则对所述数据传输请求进行处理以获取第二目标数据,并将所述第二目标数据传输至Android应用;
所述对所述数据传输请求进行处理以获取第二目标数据包括:
基于内部传输队列将所述数据传输请求传输至请求处理端,控制所述请求处理端对所述数据传输请求进行处理,并接收返回的第二目标数据;
所述处理函数包括volley子函数和业务子函数,所述获取数据传输请求之前还包括:
建立所述volley子函数和业务子函数,以及所述volley子函数和业务子函数的函数接口,所述volley子函数用于执行所述数据传输方法,所述业务子函数用于执行对应的业务操作,所述业务操作包括:重新获取数据传输请求、域名解析、忽略本次数据传输请求、获取支付接口中的至少一种;
基于所述volley子函数和业务子函数的函数接口,建立所述处理函数。
2.根据权利要求1所述的数据传输方法,其特征在于,所述对所述数据传输请求进行处理以获取第二目标数据之后还包括:
将所述数据传输请求以及第二目标数据保存至数据库。
3.根据权利要求1所述的数据传输方法,其特征在于,所述将第一目标数据传输至Android应用包括:
基于外部传输队列将所述第一目标数据传输至Android应用,所述外部传输队列包括基于HTTP协议的传输队列、基于TCP协议的传输队列以及基于UDP协议的传输队列中的至少一种。
4.根据权利要求1所述的数据传输方法,其特征在于,所述获取数据传输请求之前还包括:
基于所述处理函数对内部传输队列进行初始化。
5.根据权利要求1所述的数据传输方法,其特征在于,所述对所述数据传输请求进行处理以获取第二目标数据之后还包括:
基于所述处理函数获取所述volley子函数的返回值;
基于所述返回值确定对应的业务子函数的函数接口,并基于所述业务子函数的函数接口执行所述业务子函数。
6.一种数据传输装置,应用于Android应用,其特征在于,包括:
获取模块,用于获取数据传输请求,并基于所述数据传输请求获取处理函数,所述处理函数是基于预设处理流程进行编译和打包得到的具有对外接口的函数;
判断模块,用于基于所述处理函数判断是否存在与所述数据传输请求相同的历史传输请求;
第一处理模块,用于若存在,则将第一目标数据传输至Android应用,所述第一目标数据为数据库中保存的历史传输请求对应的目标数据;
第二处理模块,用于若不存在,则对所述数据传输请求进行处理以获取第二目标数据,并将所述第二目标数据传输至Android应用;
第二处理模块,还用于基于内部传输队列将所述数据传输请求传输至请求处理端,控制所述请求处理端对所述数据传输请求进行处理,并接收返回的第二目标数据;
建立模块,用于建立volley子函数和业务子函数,以及所述volley子函数和业务子函数的函数接口,所述volley子函数用于执行所述数据传输方法,所述业务子函数用于执行对应的业务操作,所述业务操作包括:重新获取数据传输请求、域名解析、忽略本次数据传输请求、获取支付接口中的至少一种;
基于所述volley子函数和业务子函数的函数接口,建立所述处理函数。
7.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行权利要求1至5中任一项所述的数据传输方法。
8.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至5中任一项所述的数据传输方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111311420.8A CN114039963B (zh) | 2021-11-08 | 2021-11-08 | 数据传输方法、装置、电子装置和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111311420.8A CN114039963B (zh) | 2021-11-08 | 2021-11-08 | 数据传输方法、装置、电子装置和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114039963A CN114039963A (zh) | 2022-02-11 |
CN114039963B true CN114039963B (zh) | 2024-08-06 |
Family
ID=80143100
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111311420.8A Active CN114039963B (zh) | 2021-11-08 | 2021-11-08 | 数据传输方法、装置、电子装置和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114039963B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115243272B (zh) * | 2022-07-20 | 2024-05-14 | 中国电信股份有限公司 | 无线接入网及其数据获取方法、通信系统及设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110891090A (zh) * | 2019-11-29 | 2020-03-17 | 北京声智科技有限公司 | 一种请求方法、装置、服务端、系统及存储介质 |
CN113422760A (zh) * | 2021-06-10 | 2021-09-21 | 杭州安恒信息技术股份有限公司 | 数据传输方法、装置、电子装置和存储介质 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101561167B1 (ko) * | 2014-04-18 | 2015-10-20 | 순천향대학교 산학협력단 | 안드로이드 모바일 플랫폼에서의 응용 프로그램 권한 제어 시스템 및 방법 |
CN107479865A (zh) * | 2016-06-07 | 2017-12-15 | 陈立旭 | 一种基于Volley模块的安卓手机客户端系统 |
CN106533693B (zh) * | 2016-11-03 | 2021-01-19 | 中车青岛四方机车车辆股份有限公司 | 轨道车辆监控检修系统的接入方法和装置 |
CN108040126B (zh) * | 2017-12-29 | 2021-07-16 | 贵阳语玩科技有限公司 | 发起http请求的方法及装置 |
CN111669364B (zh) * | 2020-04-26 | 2023-09-12 | 视联动力信息技术股份有限公司 | 一种数据传输的方法、装置、电子设备及介质 |
CN112764946B (zh) * | 2021-01-08 | 2024-02-02 | 重庆创通联智物联网有限公司 | 跨进程数据传输方法、装置、电子设备和存储介质 |
-
2021
- 2021-11-08 CN CN202111311420.8A patent/CN114039963B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110891090A (zh) * | 2019-11-29 | 2020-03-17 | 北京声智科技有限公司 | 一种请求方法、装置、服务端、系统及存储介质 |
CN113422760A (zh) * | 2021-06-10 | 2021-09-21 | 杭州安恒信息技术股份有限公司 | 数据传输方法、装置、电子装置和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN114039963A (zh) | 2022-02-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111580995B (zh) | 基于mqtt异步通信场景下的分布式云平台与物联网智能终端的同步通信方法与系统 | |
US20040057434A1 (en) | Multi-data receive processing according to a data communication protocol | |
US11916740B2 (en) | K8S-based service deployment method and apparatus, device, and medium | |
US10609125B2 (en) | Method and system for transmitting communication data | |
CN112261094A (zh) | 一种报文处理方法及代理服务器 | |
CN114039963B (zh) | 数据传输方法、装置、电子装置和存储介质 | |
CN111858046B (zh) | 服务请求的处理方法及装置、存储介质、电子装置 | |
EP1665681B1 (en) | Speculative pre-fetch of a protocol control block from an external memory unit | |
CN112165449B (zh) | web应用实时权限的控制方法、电子装置和存储介质 | |
CN111475314B (zh) | 一种网络请求的处理方法、装置、设备及存储介质 | |
CN108429703B (zh) | Dhcp客户端上线方法及装置 | |
CN112822299B (zh) | 基于rdma的数据传输方法、装置及电子设备 | |
US20170041402A1 (en) | Method for transparently connecting augmented network socket operations | |
CN114500528A (zh) | 一种基于云平台的数据传输方法及装置 | |
CN110245027B (zh) | 一种进程间通信的方法和设备 | |
CN111782417A (zh) | 一种基于消息的多进程共享串口资源的实现方法 | |
CN109460215B (zh) | 应用控制方法及装置 | |
CN113765867A (zh) | 一种数据传输方法、装置、设备及存储介质 | |
EP3009931A1 (en) | Electronic device for internet protocol communications | |
CN114679436B (zh) | 一种会话管理方法、服务器及计算机可读存储介质 | |
US20240106916A1 (en) | Device and method for performing dynamic-service-oriented communication between vehicle applications on autosar adaptive platform | |
CN102693434B (zh) | 射频识别设备接口层的通信装置及方法 | |
CN115914319A (zh) | 一种虚拟现实设备的远程管理方法和系统 | |
CN114697269A (zh) | 数据通信方法、装置、设备和介质 | |
CN112039801B (zh) | 设置ip信息的方法、系统和代理服务器 |
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 |