CN107479907A - 应用程序的开发方法、装置及*** - Google Patents

应用程序的开发方法、装置及*** Download PDF

Info

Publication number
CN107479907A
CN107479907A CN201610397136.XA CN201610397136A CN107479907A CN 107479907 A CN107479907 A CN 107479907A CN 201610397136 A CN201610397136 A CN 201610397136A CN 107479907 A CN107479907 A CN 107479907A
Authority
CN
China
Prior art keywords
application program
request
packet
specified
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.)
Withdrawn
Application number
CN201610397136.XA
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.)
ZTE Corp
Original Assignee
ZTE Corp
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 ZTE Corp filed Critical ZTE Corp
Priority to CN201610397136.XA priority Critical patent/CN107479907A/zh
Priority to PCT/CN2017/087470 priority patent/WO2017211302A1/zh
Publication of CN107479907A publication Critical patent/CN107479907A/zh
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)

Abstract

本发明提供了一种应用程序的开发方法、装置及***,其中,该方法包括:获取应用程序的客户端发送的指定业务请求,其中,业务请求为应用程序的客户端发送的用于执行业务的请求数据;在数据包中查找与指定业务请求对应的指定响应数据,其中,数据包为预先抓取到的数据包,并且数据包中包括在运行每个业务时向应用程序发送的业务请求中携带的请求数据和应用程序响应于请求数据的响应数据;将查找到的指定响应数据发送至应用程序的客户端进行解析,解决了相关技术中传统企业应用在移动化开发的过程中无法脱离现场的问题。

Description

应用程序的开发方法、装置及***
技术领域
本发明涉及通信领域,具体而言,涉及一种应用程序的开发方法、装置及***。
背景技术
随着智能移动设备的快速发展与普及,用户可以通过移动设备处理相关事务,例如,可以通过移动设备进行移动化办公。然而,对于移动化办公,现有企业中越来越多的企业也接受了该移动化办公的思想和行为。但是,在实现移动化办公的过程中,首先需要将企业现有的应用进行移动化,那么就需要对企业应用进行移动化开发。现有的方法中,对于移动化开发的一般做法是边开发边测试。但是,由于企业应用都是部署在内网中的,因此传统的企业应用移动化开发都需要在目的企业现场进行,无法外场开发和测试。这对于开发人员带来一定的限制条件,使得开发人员在开发企业应用时不能脱离企业。
针对相关技术中传统企业应用在移动化开发的过程中无法脱离现场的问题,目前还没有有效地解决方案。
发明内容
本发明实施例提供了一种应用程序的开发方法、装置及***,以至少解决相关技术中传统企业应用在移动化开发的过程中无法脱离现场的问题。
根据本发明的一个实施例,提供了一种应用程序的开发方法,包括:获取应用程序的客户端发送的指定业务请求,其中,所述指定业务请求为所述应用程序的客户端发送的用于执行业务的请求数据;在数据包中查找与所述指定业务请求对应的指定响应数据,其中,所述数据包为预先抓取到的数据包,并且所述数据包中包括在运行每个业务时向所述应用程序发送的业务请求中携带的请求数据和所述应用程序响应于所述请求数据的响应数据;将查找到的所述指定响应数据发送至所述应用程序的客户端进行解析。
可选地,在数据包中查找与所述指定业务请求对应的指定响应数据包括:从所述指定业务请求中提取指定请求数据,其中,所述指定请求数据包括以下至少之一:所述应用程序所在的主机地址、所述应用程序的端口号、所述指定业务请求的执行路径、所述指定业务请求的请求头信息、所述指定业务请求的请求参数、所述指定业务请求的请求方法;根据提取到的所述指定请求数据在所述数据包中查找所述指定响应数据。
可选地,所述数据包包括多个子数据包,根据提取到的所述指定请求数据在所述数据包中查找所述指定响应数据包括:在所述数据包的所述多个子数据包中查找与所述指定请求数据相匹配的子数据包;将所述子数据包中的数据作为所述指定响应数据。
可选地,所述指定响应数据包括以下至少一种:响应头信息、响应消息体。
可选地,获取应用程序的客户端发送的指定业务请求包括:获取所述应用程序的客户端通过应用程序仿真设备发送的所述指定业务请求,其中,所述应用程序仿真设备为安装在应用程序的开发环境中的设备。
可选地,在获取应用程序的客户端发送的指定业务请求之前,所述方法还包括:将预先抓取到的所述数据包按照预设格式进行配置。
可选地,将预先抓取到的所述数据包按照预设格式进行配置包括:将预先抓取到的所述数据包存放至与所述数据包对应的目录上;配置所述应用程序和所述数据包的对应关系。
可选地,配置所述应用程序和所述数据包的对应关系包括:配置所述应用程序所在的主机地址、所述应用程序的端口号、所述每个业务的执行路径、所述数据包在所述应用程序服务器中的存储路径。
根据本发明的一个实施例,还提供了一种应用程序的开发方法,包括:向应用程序服务器发送指定业务请求,其中,所述指定业务请求为用于执行业务的请求数据;接收所述应用程序服务器从数据包中查找的与所述指定业务请求对应的指定响应数据,其中,所述数据包为预先抓取到的数据包,并且所述数据包中包括在运行每个业务时向所述应用程序发送的业务请求中携带的请求数据和所述应用程序响应于所述请求数据的响应数据;对所述指定响应数据进行解析。
根据本发明的一个实施例,还提供了一种应用程序的开发装置,包括:获取模块,用于获取应用程序的客户端发送的指定业务请求,所述指定业务请求为所述应用程序的客户端发送的用于执行业务的请求数据;查找模块,用于在数据包中查找与所述指定业务请求对应的指定响应数据,其中,所述数据包为预先抓取到的数据包,并且所述数据包中包括在运行每个业务时向所述应用程序发送的业务请求中携带的请求数据和所述应用程序响应于所述请求数据的响应数据;发送模块,用于将查找到的所述指定响应数据发送至所述应用程序的客户端进行解析。
可选地,所述查找模块包括:提取单元,用于从所述指定业务请求中提取指定请求数据,其中,所述指定请求数据包括以下至少之一:所述应用程序所在的主机地址、所述应用程序的端口号、所述指定业务请求的执行路径、所述指定业务请求的请求头信息、所述指定业务请求的请求参数、所述指定业务请求的请求方法;查找单元,用于根据提取到的所述指定请求数据在所述数据包中查找所述指定响应数据。
可选地,所述数据包包括多个子数据包,所述查找单元用于:在所述数据包的所述多个子数据包中查找与所述指定请求数据相匹配的子数据包;将所述子数据包中的数据作为所述指定响应数据。
可选地,所述指定响应数据包括以下至少一种:响应头信息、响应消息体。
可选地,所述获取模块用于:获取所述应用程序的客户端通过应用程序仿真设备发送的所述指定业务请求,其中,所述应用程序仿真设备为安装在应用程序的开发环境中的设备。
可选地,所述装置还包括:配置模块,用于在获取应用程序的客户端发送的业务请求之前,将预先抓取到的所述数据包按照预设格式进行配置。
可选地,所述配置模块包括:存放单元,用于将预先抓取到的所述数据包存放至与所述数据包对应的目录上;配置单元,用于配置所述应用程序和所述数据包的对应关系。
可选地,所述配置单元用于配置所述应用程序所在的主机地址、所述应用程序的端口号、所述每个业务的执行路径、所述数据包在所述应用程序服务器中的存储路径。
根据本发明的一个实施例,还提供了一种应用程序的开发装置,包括:发送模块,用于向应用程序服务器发送指定业务请求,其中,所述指定业务请求为用于执行业务的请求数据;接收模块,用于接收所述应用程序服务器从数据包中查找的与所述指定业务请求对应的指定响应数据,其中,所述数据包为预先抓取到的数据包,并且所述数据包中包括在运行每个业务时向所述应用程序发送的业务请求中携带的请求数据和所述应用程序响应于所述请求数据的响应数据;解析模块,用于对所述指定响应数据进行解析。
根据本发明的一个实施例,还提供了一种应用程序的开发***,包括:应用程序的客户端,用于发送指定业务请求,其中,所述指定业务请求为所述应用程序的客户端发送的用于执行业务的请求数据;应用程序服务器,用于接收所述指定业务请求,并根据所述指定业务请求在数据包中查找与所述指定业务请求对应的指定响应数据,并将所述指定响应数据发送至所述应用程序的客户端进行解析,其中,所述数据包为预先抓取到的数据包,并且所述数据包中包括在运行每个业务时向所述应用程序发送的业务请求的请求数据和所述应用程序响应于所述请求数据的响应数据。
可选地,所述应用程序服务器还用于将预先抓取到的所述数据包按照预设格式进行配置。
可选地,所述***还包括:应用程序的仿真设备,其中,所述应用程序的客户端安装在所述仿真设备,所述应用程序的客户端通过所述仿真设备发送所述指定业务请求。
可选地,所述应用程序服务器和所述应用程序仿真设备通过以下任一种方式进行部署:单机部署、局域网部署和公网部署。
可选地,所述请求数据包括以下至少之一:所述应用程序所在的主机地址、所述应用程序的端口号、所述指定业务的执行路径、所述业务请求的请求头信息、所述业务请求的请求参数、所述业务请求的请求方法;所述响应数据包括以下至少一种:响应头信息、响应消息体。
通过本发明,首先获取应用程序的客户端发送的指定业务请求,然后,在本地数据包中查找对应的响应请求,并发送至应用程序的客户端,由此可见,在本发明中,采用在本地数据包对应用程序的客户端进行开发和测试,因此,使得开发人员能够在任何地点对应用程序的客户端进行开发和测试,从而解决了传统企业应用在移动化开发的过程中无法脱离现场的问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是本发明实施例的一种应用程序的开发方法的移动终端的硬件结构框图;
图2是根据本发明实施例的一种应用程序的开发方法的流程图;
图3是根据本发明实施例的另一种应用程序的开发方法的流程图;
图4是根据本发明实施例的一种应用程序的开发装置的结构框图一;
图5是根据本发明实施例的一种应用程序的开发装置的结构框图二;
图6是根据本发明实施例的一种应用程序的开发装置的结构框图三;
图7是根据本发明实施例的一种应用程序的开发装置的结构框图四;
图8是根据本发明实施例的另一种应用程序的开发装置的结构框图;
图9是根据本发明实施例的一种应用程序的开发***的结构图;
图10是根据本发明优选实施例的一种应用程序的开发方法的流程图;
图11是根据本发明优选实施例的另一种应用程序的开发方法的流程图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
实施例1
本申请实施例1所提供的装置实施例可以在移动终端、计算机终端或者类似的运算装置中执行。以运行在移动终端上为例,图1是本发明实施例的一种应用程序的开发方法的移动终端的硬件结构框图,如图1所示,移动终端10可以包括一个或多个(图中仅示出一个)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器104、以及用于通信功能的传输装置106。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,移动终端10还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
存储器104可用于存储应用软件的软件程序以及模块,如本发明实施例中的载波相位恢复装置对应的程序指令/模块,处理器102通过运行存储在存储器104内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的装置。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至移动终端10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括移动终端10的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(Network Interface Controller,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
在本实施例中提供了一种应用程序的开发方法,图2是根据本发明实施例的一种应用程序的开发方法的流程图,如图2所示,该流程包括如下步骤:
步骤S202,获取应用程序的客户端发送的指定业务请求,其中,指定业务请求为应用程序的客户端发送的用于执行业务的请求数据;
在本发明实施例中,上述应用程序可以为企业应用的应用程序,企业应用的业务可以有很多种,例如,登录企业应用的客户端,在企业应用的客户端中发送工作消息等。
步骤S204,在数据包中查找与指定业务请求对应的指定响应数据,其中,数据包为预先抓取到的数据包,并且数据包中包括在运行每个业务时向应用程序发送的业务请求中携带的请求数据和应用程序响应于请求数据的响应数据。
在本发明实施例中,可以通过安装在浏览器中的抓包工具抓取上述数据包。上述抓取工具安装在浏览器中之后,可以随浏览器启动,在浏览器向企业应用发送业务请求时,抓包工具会抓取企业应用运行过程中各个相关流程中完整的请求数据的报文,并抓取该请求数据的响应数据。在该数据包中包括该应用程序在运行所有业务时接收到的请求数据和相应该请求数据的响应数据,并且在该数据包中,请求数据和该请求数据的响应数据可以对应进行存储,以便在后续测试过程中进行响应数据的查找。
步骤S206,将查找到的指定响应数据发送至应用程序的客户端进行解析。
通过本发明,首先获取应用程序的客户端发送的指定业务请求,然后,在本地数据包中查找对应的响应请求,并发送至应用程序的客户端,由此可见,在本发明中,采用在本地数据包对应用程序的客户端进行开发和测试,因此,使得开发人员能够在任何地点对应用程序的客户端进行开发和测试,从而解决了传统企业应用在移动化开发的过程中无法脱离现场的问题。
需要说明的是,在本发明实施例步骤S202至步骤S206中所描述的方案中,可以有应用程序服务器来执行,其中,如果应用程序为企业应用,则该应用程序服务器可以为企业应用移动化服务器。
在本发明实施例中,在数据包中查找与指定业务请求对应的响应数据可以具体为:从指定业务请求中提取指定请求数据,其中,指定请求数据包括以下至少之一:应用程序所在的主机地址、应用程序的端口号、指定业务请求的执行路径、指定业务请求的请求头信息、指定业务请求的请求参数、指定业务请求的请求方法,然后,根据提取到的指定请求数据在数据包中查找指定响应数据。
测试开发人员对应用程序的客户端进行测试和开发的过程中,会通过该应用程序的客户端发送一个业务请求(即,上述指定业务请求),在该指定业务请求中包括指定请求数据,例如,应用程序所在的主机的IP地址信息、该应用程序的端口号、该应用程序在执行指定业务请求时的执行路径,例如执行“登录”业务时,按照该登录业务的路径进行执行、请求方法为上述指定业务的请求方法,例如,GET请求方法和POST请求方法,对于不相同的请求方法的请求头信息不相同。请求头信息中包括该指定业务请求的相关信息,例如,指定业务请求的长度,版本,类型等信息、请求消息体中包括上述指定业务请求的请求数据。
如果数据包包括多个子数据包,则根据提取到的请求数据在数据包中查找响应数据可以具体为:在数据包的多个子数据包中查找与指定请求数据相匹配的子数据包;将子数据包中的数据作为指定响应数据。
上述应用程序服务器在收到的指定业务请求中提取到指定请求数据之后,根据提取到的指定请求数据在数据包中查找与该指定请求数据对应的子数据包,然后将该子数据包中的数据作为响应数据。
例如,如果指定请求数据包括以下至少之一:应用程序所在的主机地址、应用程序的端口号、指定业务请求的执行路径、指定业务请求的请求头信息、指定业务请求的请求参数、指定业务请求的请求方法,则可以根据上述指定请求数据从匹配的数据包中提取与该请求相对应的响应数据,处理后返回给移动应用客户端。
具体地,上述指定响应数据包括以下至少之一:响应头信息、响应消息体,其中,响应头消息中包括响应数据的大小,版本,类型等。
在本发明实施例中,获取应用程序的客户端通过应用程序仿真设备发送的指定业务请求,其中,应用程序仿真设备为安装在应用程序的开发环境中的设备。
研发人员在对应用程序的客户端进行开发和测试的过程中,可以在应用程序的开发环境(例如,企业应用移动化集成开发环境(Integrated Development Environment,简称IDE))上对应用程序的客户端开发和测试,其中,企业应用移动化集成开发环境即为上述应用程序的开发环境。在完成上述业务功能的开发后,可以将上述应用程序的客户端安装到IDE的仿真设备中,并在该仿真设备中运行上述应用程序的客户端,测试上述每个业务功能。
此时,应用程序的客户端可以通过该仿真设备应用程序服务器(例如,企业应用移动化服务器)发送上述指定业务请求,在该业务请求中包括应用程序主机地址(例如,企业应用主机的IP地址)、应用程序端口号(企业应用的端口号)、每个指定业务请求在执行过程中的执行路径、上述指定业务请求的请求方法、指定业务请求的请求头信息、指定业务请求的请求参数以及请求消息体等数据。
在获取应用程序的客户端发送的业务请求之前,还可以将预先抓取到的数据包按照预设格式进行配置。具体地,可以在应用程序服务器(例如,企业应用移动化服务器)上部署和配置上述数据包,其中,具体可以通过下述方法部署和配置上述数据包:将预先抓取到的数据包存放至与数据包对应的目录上;配置应用程序和数据包的对应关系,其中,配置应用程序和数据包的对应关系包括:配置应用程序所在的主机地址、应用程序的端口号、每个业务的执行路径、数据包在应用程序服务器中的存储路径。
图3是根据本发明实施例的另一种应用程序的开发方法的流程图,如图3所示,该流程包括如下步骤:
步骤S302,向应用程序服务器发送指定业务请求,其中,指定业务请求为用于执行业务的请求数据;
步骤S304,接收应用程序服务器从数据包中查找的与指定业务请求对应的指定响应数据,其中,数据包为预先抓取到的数据包,并且数据包中包括在运行每个业务时向应用程序发送的业务请求中携带的请求数据和应用程序响应于请求数据的响应数据;
步骤S306,对指定响应数据进行解析。
通过本发明,首先获取应用程序的客户端发送的指定业务请求,然后在本地数据包中查找对应的响应请求并发送至应用程序的客户端,由此可见,在本发明中,采用在本地数据包对应用程序的客户端进行开发和测试,因此,使得开发人员能够在任何地点对应用程序的客户端进行开发和测试,从而解决了传统企业应用在移动化开发的过程中无法脱离现场的问题。
需要说明的是,在本发明实施例步骤S302至步骤S306中所描述的方案中,可以由应用程序的客户端,其中,如果应用程序为企业应用,则该应用程序服务器可以为企业应用的移动化客户端。
在本发明上述实施例中,首先使用抓包工具在企业内部抓取企业应用运行过程中各个相关业务流程的请求数据和响应数据,并根据请求数据和响应生成数据包。然后在企业应用移动化服务器上部署和配置上述数据包并在配置和部署好数据包之后,等待来自移动应用客户端的业务请求,当接到业务请求时,首先根据该请求中请求数据在数据包中查找响应数据,最后将响应数据返回给移动应用客户端进行解析。
采用本发明提供应用程序的开发方法和装置,仅需要进行一次完整抓取数据包,即可在任何地方进行开发和测试。与现有技术相比,极大地提高了开发灵活性、降低开发成本、降低目的企业安全管理风险。
可选地,上述步骤S202-S206的执行主体可以为应用程序服务器等,但不限于此。
可选地,上述步骤S302-S306的执行主体可以为应用程序的客户端等,但不限于此。
通过上述步骤,首先获取应用程序的客户端发送的指定业务请求,然后,在本地数据包中查找对应的响应请求,并发送至应用程序的客户端,由此可见,在本发明中,采用在本地数据包对应用程序的客户端进行开发和测试,因此,使得开发人员能够在任何地点对应用程序的客户端进行开发和测试,从而解决了传统企业应用在移动化开发的过程中无法脱离现场的问题。
实施例2
在本实施例中还提供了一种应用程序的开发装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图4是根据本发明实施例的一种应用程序的开发装置的结构框图一,如图4所示,该装置包括:
获取模块41,用于获取应用程序的客户端发送的指定业务请求,其中,指定业务请求为应用程序的客户端发送的用于执行业务的请求数据。
查找模块43,耦接至获取模块41,用于查找模块,用于在数据包中查找与指定业务请求对应的指定响应数据,其中,数据包为预先抓取到的数据包,并且数据包中包括在运行每个业务时向应用程序发送的业务请求中携带的请求数据和应用程序响应于请求数据的响应数据。
发送模块45,耦接至查找模块43,用于将查找到的指定响应数据发送至应用程序的客户端进行解析。
图5是根据本发明实施例的一种应用程序的开发装置的结构框图二,如图5所示,查找模块43包括:
提取单元51,耦接至获取模块41,用于从指定业务请求中提取指定请求数据,其中,指定请求数据包括以下至少之一:应用程序所在的主机地址、应用程序的端口号、指定业务的执行路径、指定业务请求的请求头信息、指定业务请求的请求参数、指定业务请求的请求方法。
查找单元53,耦接至提取单元51,用于根据提取到的指定请求数据在数据包中查找指定响应数据。
可选地,数据包包括多个子数据包,查找单元用于:在数据包的多个子数据包中查找与指定请求数据相匹配的子数据包;将子数据包中的数据作为指定响应数据。
可选地,指定响应数据包括以下至少一种:响应头信息、响应消息体。
可选地,获取模块41用于:获取应用程序的客户端通过应用程序仿真设备发送的指定业务请求,其中,应用程序仿真设备为安装在应用程序的开发环境中的设备。
图6是根据本发明实施例的一种应用程序的开发装置的结构框图三,如图6所示,该装置还包括:
配置模块61,耦接至获取模块41,用于在获取应用程序的客户端发送的业务请求之前,将预先抓取到的数据包按照预设格式进行配置。
图7是根据本发明实施例的一种应用程序的开发装置的结构框图四,如图7所示,该配置模块61包括:
存放单元71,用于将预先抓取到的数据包存放至与数据包对应的目录上。
配置单元73,耦接至存放单元71,用于配置应用程序和数据包的对应关系。
可选地,配置单元用于配置应用程序所在的主机地址、应用程序的端口号、每个业务的执行路径、数据包在应用程序服务器中的存储路径。
图8是根据本发明实施例的另一种应用程序的开发装置的结构框图,如图8所示,该装置包括:
发送模块81,用于向应用程序服务器发送指定业务请求,其中,指定业务请求为用于执行业务的请求数据。
接收模块83,耦接至发送模块81,用于接收应用程序服务器从数据包中查找的与指定业务请求对应的指定响应数据,其中,数据包为预先抓取到的数据包,并且数据包中包括在运行每个业务时向应用程序发送的业务请求中携带的请求数据和应用程序响应于请求数据的响应数据。
解析模块85,用于对指定响应数据进行解析。
需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述模块分别位于多个处理器中。
实施例3
图9是根据本发明实施例的一种应用程序的开发***的结构图,如图9所示,该***包括:
应用程序的客户端91,用于发送指定业务请求,其中,指定业务请求为所述应用程序的客户端发送的用于执行业务的请求数据。
应用程序服务器93,用于接收指定业务请求,并根据指定业务请求在数据包中查找与指定业务请求对应的指定响应数据,并将指定响应数据发送至应用程序的客户端进行解析,其中,数据包为预先抓取到的数据包,并且数据包中包括在运行每个业务时向应用程序发送的业务请求的请求数据和应用程序响应于请求数据的响应数据。
通过本发明,首先获取应用程序的客户端发送的指定业务请求,然后,在本地数据包中查找对应的响应请求,并发送至应用程序的客户端,由此可见,在本发明中,采用在本地数据包对应用程序的客户端进行开发和测试,因此,使得开发人员能够在任何地点对应用程序的客户端进行开发和测试,从而解决了传统企业应用在移动化开发的过程中无法脱离现场的问题。
在本发明实施例中,可以通过抓包工具抓取数据包,其中,抓包工具作为浏览器的一个插件,在通过浏览器访问应用程序(例如,企业应用)时,抓取业务请求和响应数据的报文,保存成数据包文件待用。具体地,上述数据包包括以下至少之一:应用程序所在的主机地址、应用程序的端口号、指定业务请求的执行路径、指定业务请求的请求头信息、指定业务请求的请求参数、指定业务请求的请求方法;所述响应数据包括以下至少一种:响应头信息、响应消息体,上述数据中还包括相关文件的下载地址,例如:层叠样式表CSS文件、JavaScript脚本文件、图片文件的下载地址,以及文件内容。
上述应用程序服务器(例如,企业应用移动化服务器),在传统开发模式下,它直接连接应用程序(例如,企业应用),转发来自应用程序的客户端的业务请求,接收来自企业应用的响应,处理后转发给移动应用客户端。在本发明中,该应用程序服务器依据业务请求中的请求数据匹配对应的数据包文件;然后,在数据包中查找对应的响应数据,并在处理后返回给应用程序的客户端。
在本发明实施例中,应用程序服务器还用于将预先抓取到的数据包按照预设格式进行配置。可以首先将预先抓取到的数据包存放至与数据包对应的目录上,然后,配置应用程序和数据包的对应关系,具体地,可以配置应用程序所在的主机地址、应用程序的端口号、每个业务的执行路径、数据包在应用程序服务器中的存储路径。
在本发明实施例中,该***还包括:应用程序的仿真设备95,其中,应用程序的客户端安装在应用程序的仿真设备中,并通过应用程序的仿真设备向应用程序服务器发送业务请求。
该仿真设备可以为安装在应用程序的开发环境(例如,企业应用移动化集成开发环境(Integrated Development Environment,简称IDE))上。其中,应用程序的开发环境用于开发应用程序的客户端,并通过其中的仿真设备(即模拟器)连接应用程序移动化服务器进行测试(或者将应用程序的客户端安装到智能移动终端上进行真机测试)。应用程序的客户端发送业务请求给应用程序服务器,接收来自应用程序服务器的响应,并解析和展示。
需要说说明的是,在本发明实施例中,应用程序服务器和应用程序仿真器可以通过以下任一种方式进行部署:单机部署、局域网部署和公网部署。
具体地,单机部署为在开发者所使用的单台电脑上进行部署,即将应用程序的开发环境(例如,企业应用移动化IDE)和应用程序服务器(例如,企业应用移动化服务器)部署在开发者所使用的同一台电脑上。该部署方式可以脱离目的企业,在任何地方、任何时间进行离线的企业应用移动化开发和测试。
局域网部署为在开发者所属企业内部部署,即将应用程序的开发环境(例如,企业应用移动化IDE)部署在开发者所使用的电脑上,将应用程序服务器(例如,企业应用移动化服务器)部署在开发者所属企业内网中。该部署方式可以脱离目的企业,在开发者所属企业内进行离线的企业应用移动化开发和测试。
公网部署为将应用程序服务器(例如,企业应用移动化服务器)部署在公网中,将应用程序的开发环境(例如,企业应用移动化IDE)部署在开发者所使用的电脑上。该部署方式可以脱离目的企业,在任何能够链接公有云的地方、任何时间进行离线的企业应用移动化开发和测试。
实施例4
下面结合本发明优选实施例进行详细说明。
图10是根据本发明优选实施例的一种应用程序的开发方法的流程图。如图10所示,抓包工具作为浏览器的一个插件,在通过浏览器访问企业应用时,抓取请求数据和响应数据的报文,保存成数据包文件待用。
企业应用移动化服务器(即,上述应用程序服务器),在传统模式下,它直接连接企业应用,转发来自企业应用移动应用客户端(即,上述应用程序的客户端)的业务请求给企业应用(即,应用程序),并接收来自企业应用的响应数据,处理后转发给移动应用客户端。在本发明中,该装置根据移动应用客户端发送的业务请求中的请求数据在数据包中匹配对应的数据文件,然后,将对应到的数据文件中的数据作为响应数据,并在处理后将响应数据返回给企业应用移动应用客户端。
图11是根据本发明优选实施例的另一种应用程序的开发方法的流程图。如图11所示,该流程包括如下步骤:
步骤S1101,抓包工具随浏览器启动;该抓包工具可以作为插件安装在浏览器中,用于抓取数据,当浏览器启动时,抓包工具随之启动。
步骤S1102,通过浏览器访问应用程序。
步骤S1103,抓包工具抓取浏览器发送给应用程序的请求数据;当用户通过浏览器访问应用程序的某个业务时,会向该应用程序发送请求数据,此时,抓包工具可以抓取该请求数据。
步骤S1104,抓取浏览器接收的应用程序的响应数据;抓包工具还可以抓取浏览器响应上述请求数据的响应数据。
步骤S1105,判断是否完成所有业务的数据抓取;若是,则执行步骤S1106;若否,则返回执行步骤S1103。
步骤S1106,输出数据包文件;如果该应用程序的所有业务的请求数据和响应数据均抓取完成之后,得到数据包,并输出。
步骤S1107,应用程序服务器部署数据包到应用程序服务器。
步骤S1108,应用程序服务器配置数据包与应用程序的对应关系。
步骤S1109,使用IDE开发应用程序客户端的业务功能。
步骤S1110,安装应用程序的客户端到IDE中的仿真设备。
步骤S1111,启动应用程序的客户端,测试所有业务功能。
步骤S1112,应用程序服务器接收到应用程序的客户端发送的请求数据。
步骤S1113,应用程序服务器根据接收到的请求数据在数据包中进行数据匹配。
步骤S1114,应用程序服务器根据匹配结果从数据包中读取对应的响应数据。
步骤S1115,应用程序服务器将相应数据返回给应用程序的客户端。
步骤S1116,应用程序的客户端对接收到的响应数据进行解析和展示。
步骤S1117,判断是否完成所有业务的开发,若是,结束流程;若否,返回执行步骤S1109。
通过本发明,首先获取应用程序的客户端发送的指定业务请求,然后,在本地数据包中查找对应的响应请求,并发送至应用程序的客户端,由此可见,在本发明中,采用在本地数据包对应用程序的客户端进行开发和测试,因此使得开发人员能够在任何地点对应用程序的客户端进行开发和测试,从而解决了传统企业应用在移动化开发的过程中无法脱离现场的问题。
实施例5
下面结合本发明优选实施例进行详细说明。
在本发明下述的优选实施例中,应用程序以企业应用为例,应用程序服务器以企业应用移动化服务器,应用程序的客户端以企业应用移动应用客户端,应用程序的开发环境以IDE为例进行说明。
优选实施例一
下面以单机部署为例,将企业应用移动化IDE和企业应用移动化服务器同时部署在开发者所使用的电脑上,实施逻辑如下:
第一步、抓包
本步骤又可以包括下列步骤:
步骤1、启动已经安装抓包工具的浏览器;
步骤2、在浏览器地址栏输入待移动化的企业应用的网址,如http://share.xxx.com.cn,打开应用页面;在此过程中,抓包工具抓取的请求数据和响应数据包括(摘选部分内容展示):
主机名称:share.xxx.com.cn
路径:/tech/jsp/userlogin
请求方法:GET
网络协议:HTTP/1.1
请求头信息:
(Request-Line)GET/tech/jsp/userlogin HTTP/1.1
Host share.xxx.com.cn
User-Agent Mozilla/5.0(Windows NT 6.1;rv:42.0)Gecko/20100101Firefox/42.0
Accept
text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encodinggzip,deflate
Cookie JSESSIONID=BB06E96D04E52D575F6DC7091B6B297E;language=zh
Connection keep-alive
响应头信息:
(Status-Line)HTTP/1.1 200OK
Server nginx/1.2.3
Date Thu,03Mar 2016 08:29:35GMT
Content-Typetext/html;charset=UTF-8
Transfer-Encoding chunked
Connection keep-alive
Vary Accept-Encoding,Accept-Encoding
P3P CP=CAO PSA OUR IDC DSP COR ADM DEVi TAIi PSD IVAi IVDi CONi HISIND CNT
Pragma no-cache
Cache-Control no-cache
Expires Wed,31Dec 1969 23:59:59GMT
Content-Language zh
Content-Encoding gzip
响应消息体(摘选部分内容展示):
<!DOCTYPE html PUBLIC"-//W3C//DTD XHTML 1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type"content="text/html;charset=utf-8"/><title>易秀,秀出你风采!</title><link rel="shortcuticon"href="http://10.41.134.74/skins/weibo/images/bigBannerPic/favicon_it.ico"/><style>@media print{body{display:none}}
#autocapsLock0{position:absolute;z-index:9999;}
相关文件网络地址:http://zz.zz.zzz.zz/skins/weibo/js/jquery.1.5.1.js
相关文件内容(摘选部分内容展示):
(function(s,m){function pa(p){return b.isWindow(p)?p:9===p.nodeType?p.defaultView||p.parentWindow:!1}functio n Ja(p){if(!qa[p]){var a
步骤3、在页面中输入业务参数,执行业务操作,刷新页面或者进入下一个页面,如:输入用户名和密码两个参数进行登录操作。在此过程中,抓包工具抓取的数据有(摘选部分内容展示)
主机名称:share.xxx.com.cn
路径:/tech/jsp/loginsubmit?
请求方法:POST
网络协议:HTTP/1.1
请求头信息:
(Request-Line)POST/tech/jsp/loginsubmit?HTTP/1.1
Host share.xxx.com.cn
User-Agent Mozilla/5.0(Windows NT 6.1;rv:42.0)Gecko/20100101Firefox/42.0
Accept
text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encodinggzip,deflate
Referer http://share.xxx.com.cn/tech/jsp/userlogin
Cookie JSESSIONID=BB06E96D04E52D575F6DC7091B6B297E;language=zh
Content-Typeapplication/x-www-form-urlencoded
Content-Length 74
请求消息体:
language=zh&language_flag=zh&password=mypwd&username=mynam e
响应消息头:
(Status-Line)HTTP/1.1 302Moved Temporarily
Server nginx/1.2.3
Date Thu,03Mar 2016 08:39:35GMT
Content-Typetext/html
Content-Length 166
Connection keep-alive
Location http://share.xxx.com.cn/tech/jsp/user
步骤4、重复执行步骤3,直至应用程序的所有需要移动化的业务功能都***作一遍;
步骤5、输出数据包文件备用,如share.package。
第二步、部署和配置上述数据包
本步骤又可以包括下列步骤:
步骤1、部署第一步中抓取的数据包到企业应用移动化服务器上,如复制share.package到服务器packages文件夹,即packages/share.package;
步骤2、配置企业应用主机地址、应用程序的端口、路径与数据包的对应关系,如在配置文件packages/conf.xml中添加上述企业应用与数据包文件的关系。
第三步、应用程序的移动化开发和测试
本步骤又可以包括下列步骤:
步骤1、开发者使用企业应用移动化IDE开发移动应用客户端某业务功能,如:登录的业务功能;
步骤2、开发者安装上述移动应用客户端到IDE仿真设备;
步骤3、运行移动应用客户端,输入业务参数,执行业务操作,向企业应用移动化服务器发送业务请求;
步骤4、企业应用移动化服务器收到业务请求后,从中提取信息,即请求数据的信息(包括企业应用主机名称、端口号、路径、请求头信息、请求参数、请求消息体),并依据第二步中的配置,通过主机名称、端口号、路径找到与该企业应用对应的数据包;再根据路径、请求头信息、请求参数从匹配的数据包中提取与请求相对应的响应数据,处理后返回给移动应用客户端。
以上述登录为例,应用移动化服务器首先从来自移动应用客户端的请求中提取请求信息,如:
主机名称:share.xxx.com.cn
路径:/tech/jsp/loginsubmit?
请求方法:POST
网络协议:HTTP/1.1
请求头信息:
(Request-Line)POST/tech/jsp/loginsubmit?HTTP/1.1
Host share.xxx.com.cn
User-Agent Mozilla/5.0(Windows NT 6.1;rv:42.0)Gecko/20100101Firefox/42.0
Accept
text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encodinggzip,deflate
Referer http://share.xxx.com.cn/tech/jsp/userlogin
Cookie JSESSIONID=BB06E96D04E52D575F6DC7091B6B297E;language=zh
Content-Typeapplication/x-www-form-urlencoded
Content-Length 74
请求消息体:
language=zh&language_flag=zh&password=mypwd&username=mynam e
然后根据主机名称(share.xxx.com.cn)和配置信息(<app name="share"><url>http://share.xxx.com.cn</url><package>share.package</package></app>)匹配到该企业应用对应的数据包文件,如:share.package
接着根据登录请求路径(/tech/jsp/loginsubmit?)和请求参数(language=zh&language_flag=zh&password=mypwd&username=myname)从数据包(share.package)中读取与之相对应的响应数据,如:
HTTP/1.1 302Moved Temporarily
Server nginx/1.2.3
Date Thu,03Mar 2016 08:39:35GMT
Content-Typetext/html
Content-Length 166
Connection keep-alive
Location http://share.xxx.com.cn/tech/jsp/user
最后将响应数据返回给移动应用客户端。
步骤5、移动应用客户端解析、展示业务功能执行结果响应数据。开发者据此进行修改、调试,或者继续开发下一个业务功能。
步骤6、重复上述步骤1至步骤5,直至完成企业应用移动化开发。
优选实施例二
下面以局域网部署为例,将企业应用移动化IDE部署在开发者电脑上,将企业应用移动化服务器均部署在开发者所属企业内局域网中,实施逻辑如下:
第一步抓包
本步骤又可以包括下列步骤:
步骤1、启动已经安装抓包工具的浏览器;
步骤2、在浏览器地址栏输入待移动化的企业应用网址,如http://share.xxx.com.cn,打开应用页面;在此过程中,抓包工具抓取的请求数据和响应数据包括(摘选部分内容展示):
主机名称:share.xxx.com.cn
路径:/tech/jsp/userlogin
请求方法:GET
网络协议:HTTP/1.1
请求头信息:
(Request-Line)GET/tech/jsp/userlogin HTTP/1.1
Host share.xxx.com.cn
User-Agent Mozilla/5.0(Windows NT 6.1;rv:42.0)Gecko/20100101Firefox/42.0
Accept
text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encodinggzip,deflate
Cookie JSESSIONID=BB06E96D04E52D575F6DC7091B6B297E;language=zh
Connection keep-alive
响应头信息:
(Status-Line)HTTP/1.1 200OK
Server nginx/1.2.3
Date Thu,03Mar 2016 08:29:35GMT
Content-Typetext/html;charset=UTF-8
Transfer-Encoding chunked
Connection keep-alive
Vary Accept-Encoding,Accept-Encoding
P3P CP=CAO PSA OUR IDC DSP COR ADM DEVi TAIi PSD IVAi IVDi CONi HISIND CNT
Pragma no-cache
Cache-Control no-cache
Expires Wed,31Dec 1969 23:59:59GMT
Content-Language zh
Content-Encoding gzip
响应消息体(摘选部分内容展示):
<!DOCTYPE html PUBLIC"-//W3C//DTD XHTML 1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type"content="text/html;charset=utf-8"/><title>易秀,秀出你风采!</title><link rel="shortcuticon"href="http://10.41.134.74/skins/weibo/images/bigBannerPic/favicon_it.ico"/><style>@media print{body{display:none}}
#autocapsLock0{position:absolute;z-index:9999;}
相关文件网络地址:http://zz.zz.zzz.zz/skins/weibo/js/jquery.1.5.1.js
相关文件内容(摘选部分内容展示):
(function(s,m){function pa(p){return b.isWindow(p)?p:9===p.nodeType?p.defaultView||p.parentWindow:!1}functio n Ja(p){if(!qa[p]){var a
步骤3、在页面中输入业务参数,执行业务操作,刷新页面或者进入下一个页面,如:输入用户名和密码两个参数进行登录操作。在此过程中,抓包工具抓取的数据有(摘选部分内容展示)
主机名称:share.xxx.com.cn
路径:/tech/jsp/loginsubmit?
请求方法:POST
网络协议:HTTP/1.1
请求头信息:
(Request-Line)POST/tech/jsp/loginsubmit?HTTP/1.1
Host share.xxx.com.cn
User-Agent Mozilla/5.0(Windows NT 6.1;rv:42.0)Gecko/20100101Firefox/42.0
Accept
text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encodinggzip,deflate
Referer http://share.xxx.com.cn/tech/jsp/userlogin
Cookie JSESSIONID=BB06E96D04E52D575F6DC7091B6B297E;language=zh
Content-Typeapplication/x-www-form-urlencoded
Content-Length 74
请求消息体:
language=zh&language_flag=zh&password=mypwd&username=mynam e
响应消息头:
(Status-Line)HTTP/1.1 302Moved Temporarily
Server nginx/1.2.3
Date Thu,03Mar 2016 08:39:35GMT
Content-Typetext/html
Content-Length 166
Connection keep-alive
Location http://share.xxx.com.cn/tech/jsp/user
步骤4、重复执行步骤3,直至应用程序的所有需要移动化的业务功能都***作一遍;
步骤5、输出数据包文件备用,如share.package。
第二步、部署和配置上述数据包
本步骤又可以包括下列步骤:
步骤1、部署第一步中抓取的数据包文件到企业应用移动化服务器上,如复制share.package到服务器packages文件夹,即packages/share.package;
步骤2、配置企业应用主机地址、端口、路径与数据包对应关系,如在配置文件packages/conf.xml中添加上述企业应用与数据包文件的关系。
第三步、企业应用移动化开发和测试
本步骤又可以包括下列步骤:
步骤1、开发者使用企业应用移动化IDE开发移动应用客户端某业务功能,如:登录的业务功能;
步骤2、开发者安装上述移动应用客户端到IDE仿真器;
步骤3、运行移动应用客户端,输入业务参数,执行业务操作,向企业应用移动化服务器发送业务请求;
步骤4、企业应用移动化服务器收到业务请求后,从中提取信息,即请求数据的信息(包括企业应用主机名称、端口号、路径、请求头信息、请求参数、请求消息体),并依据第二步中的配置,通过主机名称、端口号、路径找到与该企业应用对应的数据包;再根据路径、请求头信息、请求参数从匹配的数据包中提取与请求相对应的响应数据,处理后返回给移动应用客户端。
以上述登录为例,服务器首先从来自移动应用客户端的请求中提取请求信息,如:
主机名称:share.xxx.com.cn
路径:/tech/jsp/loginsubmit?
请求方法:POST
网络协议:HTTP/1.1
请求头信息:
(Request-Line)POST/tech/jsp/loginsubmit?HTTP/1.1
Host share.xxx.com.cn
User-Agent Mozilla/5.0(Windows NT 6.1;rv:42.0)Gecko/20100101Firefox/42.0
Accept
text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encodinggzip,deflate
Referer http://share.xxx.com.cn/tech/jsp/userlogin
Cookie JSESSIONID=BB06E96D04E52D575F6DC7091B6B297E;language=zh
Content-Typeapplication/x-www-form-urlencoded
Content-Length 74
请求消息体:
language=zh&language_flag=zh&password=mypwd&username=mynam e
然后根据主机名称(share.xxx.com.cn)和配置信息(<app name="share"><url>http://share.xxx.com.cn</url><package>share.package</package></app>)匹配到该企业应用对应的数据包文件,如:share.package
接着根据登录请求路径(/tech/jsp/loginsubmit?)和请求参数(language=zh&language_flag=zh&password=mypwd&username=myname)从数据包(share.package)中读取与之相对应的响应数据,如:
HTTP/1.1 302Moved Temporarily
Server nginx/1.2.3
Date Thu,03Mar 2016 08:39:35GMT
Content-Typetext/html
Content-Length 166
Connection keep-alive
Location http://share.xxx.com.cn/tech/jsp/user
最后将响应数据返回给移动应用客户端。
步骤5、移动应用客户端解析、展示业务功能执行结果响应数据。开发者据此进行修改、调试,或者继续开发下一个业务功能。
步骤6、重复上述步骤1至步骤5,直至完成企业应用移动化开发。
优选实施例三
下面以公网部署为例,将企业应用移动化IDE部署在开发者所使用的电脑上,将企业应用移动化服务器部署在公网上,实施逻辑如下:
第一步抓包
本步骤又可以包括下列步骤:
步骤1、启动已经安装抓包工具的浏览器;
步骤2、在浏览器地址栏输入待移动化的企业应用网址,如http://share.xxx.com.cn,打开应用页面;在此过程中,抓包工具抓取的请求数据和响应数据包括(摘选部分展示):
主机名称:share.xxx.com.cn
路径:/tech/jsp/userlogin
请求方法:GET
网络协议:HTTP/1.1
请求头信息:
(Request-Line)GET/tech/jsp/userlogin HTTP/1.1
Host share.xxx.com.cn
User-Agent Mozilla/5.0(Windows NT 6.1;rv:42.0)Gecko/20100101Firefox/42.0
Accept
text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encodinggzip,deflate
Cookie JSESSIONID=BB06E96D04E52D575F6DC7091B6B297E;language=zh
Connection keep-alive
响应头信息:
(Status-Line)HTTP/1.1 200OK
Server nginx/1.2.3
Date Thu,03Mar 2016 08:29:35GMT
Content-Typetext/html;charset=UTF-8
Transfer-Encoding chunked
Connection keep-alive
Vary Accept-Encoding,Accept-Encoding
P3P CP=CAO PSA OUR IDC DSP COR ADM DEVi TAIi PSD IVAi IVDi CONi HISIND CNT
Pragma no-cache
Cache-Control no-cache
Expires Wed,31Dec 1969 23:59:59GMT
Content-Language zh
Content-Encoding gzip
响应消息体(摘选部分内容展示):
<!DOCTYPE html PUBLIC"-//W3C//DTD XHTML 1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type"content="text/html;charset=utf-8"/><title>易秀,秀出你风采!</title><link rel="shortcuticon"href="http://10.41.134.74/skins/weibo/images/bigBannerPic/favicon_it.ico"/><style>@media print{body{display:none}}
#autocapsLock0{position:absolute;z-index:9999;}
相关文件网络地址:http://zz.zz.zzz.zz/skins/weibo/js/jquery.1.5.1.js
相关文件内容(摘选部分内容展示):
(function(s,m){function pa(p){return b.isWindow(p)?p:9===p.nodeType?p.defaultView||p.parentWindow:!1}functio n Ja(p){if(!qa[p]){var a
步骤3、在页面中输入业务参数,执行业务操作,刷新页面或者进入下一个页面,如:输入用户名和密码两个参数进行登录操作。在此过程中,抓包工具抓取的数据有(摘选部分内容展示)
主机名称:share.xxx.com.cn
路径:/tech/jsp/loginsubmit?
请求方法:POST
网络协议:HTTP/1.1
请求头信息:
(Request-Line)POST/tech/jsp/loginsubmit?HTTP/1.1
Host share.xxx.com.cn
User-Agent Mozilla/5.0(Windows NT 6.1;rv:42.0)Gecko/20100101Firefox/42.0
Accept
text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encodinggzip,deflate
Referer http://share.xxx.com.cn/tech/jsp/userlogin
Cookie JSESSIONID=BB06E96D04E52D575F6DC7091B6B297E;language=zh
Content-Typeapplication/x-www-form-urlencoded
Content-Length 74
请求消息体:
language=zh&language_flag=zh&password=mypwd&username=mynam e
响应消息头:
(Status-Line)HTTP/1.1 302Moved Temporarily
Server nginx/1.2.3
Date Thu,03Mar 2016 08:39:35GMT
Content-Typetext/html
Content-Length 166
Connection keep-alive
Location http://share.xxx.com.cn/tech/jsp/user
步骤4、重复执行步骤3,直至应用程序的所有需要移动化的业务功能都***作一遍;
步骤5、输出数据包文件备用,如share.package。
第二步、部署和配置上述数据包
本步骤又可以包括下列步骤:
步骤1、部署第二步中抓取的数据包文件到企业应用移动化服务器上,如复制share.package到服务器packages文件夹,即packages/share.package;
步骤2、配置企业应用主机地址、端口、路径与数据包对应关系,如在配置文件packages/conf.xml中添加上述企业应用与数据包文件的关系。
第三步、企业应用移动化开发和测试
本步骤又可以包括下列步骤:
步骤1、开发者使用企业应用移动化IDE开发移动应用客户端某业务功能,如:登录的业务功能;
步骤2、开发者安装上述移动应用客户端到IDE仿真器;
步骤3、运行移动应用客户端,输入业务参数,执行业务操作,向企业应用移动化服务器发送业务请求;
步骤4、企业应用移动化服务器收到业务请求后,从中提取信息,即请求数据的信息(包括企业应用主机名称、端口号、路径、请求头信息、请求参数、请求消息体),并依据第二步中的配置,通过主机名称、端口号、路径找到与该企业应用对应的数据包;再根据路径、请求头信息、请求参数从匹配的数据包中提取与请求相对应的响应数据,处理后返回给移动应用客户端。
以上述登录为例,服务器首先从来自移动应用客户端的请求中提取请求信息,如:
主机名称:share.xxx.com.cn
路径:/tech/jsp/loginsubmit?
请求方法:POST
网络协议:HTTP/1.1
请求头信息:
(Request-Line)POST/tech/jsp/loginsubmit?HTTP/1.1
Host share.xxx.com.cn
User-Agent Mozilla/5.0(Windows NT 6.1;rv:42.0)Gecko/20100101Firefox/42.0
Accept
text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encodinggzip,deflate
Referer http://share.xxx.com.cn/tech/jsp/userlogin
Cookie JSESSIONID=BB06E96D04E52D575F6DC7091B6B297E;language=zh
Content-Typeapplication/x-www-form-urlencoded
Content-Length 74
请求消息体:
language=zh&language_flag=zh&password=mypwd&username=mynam e
然后根据主机名称(share.xxx.com.cn)和配置信息(<app name="share"><url>http://share.xxx.com.cn</url><package>share.package</package></app>)匹配到该企业应用对应的数据包文件,如:share.package;
接着根据登录请求路径(/tech/jsp/loginsubmit?)和请求参数(language=zh&language_flag=zh&password=mypwd&username=myname)从数据包(share.package)中读取与之相对应的响应数据,如:
HTTP/1.1 302Moved Temporarily
Server nginx/1.2.3
Date Thu,03Mar 2016 08:39:35GMT
Content-Typetext/html
Content-Length 166
Connection keep-alive
Location http://share.xxx.com.cn/tech/jsp/user
最后将响应数据返回给移动应用客户端。
步骤5、移动应用客户端解析、展示业务功能执行结果响应数据。开发者据此进行修改、调试,或者继续开发下一个业务功能。
步骤6、重复上述步骤1至步骤5,直至完成企业应用移动化开发。
以上实施例仅用以说明本发明的技术方案而非对其进行限制,本领域的普通技术人员可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明的精神和范围,本发明的保护范围应以权利要求为准。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的装置可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例的装置。
本发明的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的程序代码:
S11,获取应用程序的客户端发送的指定业务请求,其中,指定业务请求为应用程序的客户端发送的用于执行指定业务的请求数据;
S12,在数据包中查找与指定业务请求对应的指定响应数据,其中,数据包为预先抓取到的数据包,并且数据包中包括在运行每个业务时向应用程序发送的业务请求中携带的请求数据和应用程序响应于请求数据的响应数据;
S21,将查找到的指定响应数据发送至应用程序的客户端进行解析。
本发明的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的程序代码:
S22,向应用程序服务器发送指定业务请求,其中,指定业务请求用于执行业务的请求数据;
S23,接收应用程序服务器从数据包中查找的与指定业务请求对应的指定响应数据,其中,数据包为预先抓取到的数据包,并且数据包中包括在运行每个业务时向应用程序发送的业务请求中携带的请求数据和应用程序响应于请求数据的响应数据;
S24,对指定响应数据进行解析。
可选地,存储介质还被设置为存储用于执行上述实施例记载的装置步骤的程序代码:
可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
可选地,在本实施例中,处理器根据存储介质中已存储的程序代码执行上述实施例记载的装置步骤。
可选地,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (23)

1.一种应用程序的开发方法,其特征在于,包括:
获取应用程序的客户端发送的指定业务请求,其中,所述指定业务请求为所述应用程序的客户端发送的用于执行业务的请求数据;
在数据包中查找与所述指定业务请求对应的指定响应数据,其中,所述数据包为预先抓取到的数据包,并且所述数据包中包括在运行每个业务时向所述应用程序发送的业务请求中携带的请求数据和所述应用程序响应于所述请求数据的响应数据;
将查找到的所述指定响应数据发送至所述应用程序的客户端进行解析。
2.根据权利要求1所述的方法,其特征在于,在数据包中查找与所述指定业务请求对应的指定响应数据包括:
从所述指定业务请求中提取指定请求数据,其中,所述指定请求数据包括以下至少之一:所述应用程序所在的主机地址、所述应用程序的端口号、所述指定业务请求的执行路径、所述指定业务请求的请求头信息、所述指定业务请求的请求参数、所述指定业务请求的请求方法;
根据提取到的所述指定请求数据在所述数据包中查找所述指定响应数据。
3.根据权利要求2所述的方法,其特征在于,所述数据包包括多个子数据包,根据提取到的所述指定请求数据在所述数据包中查找所述指定响应数据包括:
在所述数据包的所述多个子数据包中查找与所述指定请求数据相匹配的子数据包;
将所述子数据包中的数据作为所述指定响应数据。
4.根据权利要求1至3中任一项所述的方法,其特征在于,所述指定响应数据包括以下至少一种:响应头信息、响应消息体。
5.根据权利要求1所述的方法,其特征在于,获取应用程序的客户端发送的指定业务请求包括:
获取所述应用程序的客户端通过应用程序仿真设备发送的所述指定业务请求,其中,所述应用程序仿真设备为安装在应用程序的开发环境中的设备。
6.根据权利要求1所述的方法,其特征在于,在获取应用程序的客户端发送的指定业务请求之前,所述方法还包括:
将预先抓取到的所述数据包按照预设格式进行配置。
7.根据权利要求6所述的方法,其特征在于,将预先抓取到的所述数据包按照预设格式进行配置包括:
将预先抓取到的所述数据包存放至与所述数据包对应的目录上;
配置所述应用程序和所述数据包的对应关系。
8.根据权利要求7所述的方法,其特征在于,配置所述应用程序和所述数据包的对应关系包括:
配置所述应用程序所在的主机地址、所述应用程序的端口号、所述每个业务的执行路径、所述数据包在所述应用程序服务器中的存储路径。
9.一种应用程序的开发方法,其特征在于,包括:
向应用程序服务器发送指定业务请求,其中,所述指定业务请求用于执行业务的请求数据;
接收所述应用程序服务器从数据包中查找的与所述指定业务请求对应的指定响应数据,其中,所述数据包为预先抓取到的数据包,并且所述数据包中包括在运行每个业务时向所述应用程序发送的业务请求中携带的请求数据和所述应用程序响应于所述请求数据的响应数据;
对所述指定响应数据进行解析。
10.一种应用程序的开发装置,其特征在于,包括:
获取模块,用于获取应用程序的客户端发送的指定业务请求,其中,所述指定业务请求为所述应用程序的客户端发送的用于执行业务的请求数据;
查找模块,用于在数据包中查找与所述指定业务请求对应的指定响应数据,其中,所述数据包为预先抓取到的数据包,并且所述数据包中包括在运行每个业务时向所述应用程序发送的业务请求中携带的请求数据和所述应用程序响应于所述请求数据的响应数据;
发送模块,用于将查找到的所述指定响应数据发送至所述应用程序的客户端进行解析。
11.根据权利要求10所述的装置,其特征在于,所述查找模块包括:
提取单元,用于从所述指定业务请求中提取指定请求数据,其中,所述指定请求数据包括以下至少之一:所述应用程序所在的主机地址、所述应用程序的端口号、所述指定业务请求的执行路径、所述指定业务请求的请求头信息、所述指定业务请求的请求参数、所述指定业务请求的请求方法;
查找单元,用于根据提取到的所述指定请求数据在所述数据包中查找所述指定响应数据。
12.根据权利要求11所述的装置,其特征在于,所述数据包包括多个子数据包,所述查找单元用于:
在所述数据包的所述多个子数据包中查找与所述指定请求数据相匹配的子数据包;
将所述子数据包中的数据作为所述指定响应数据。
13.根据权利要求10至12中任一项所述的装置,其特征在于,所述指定响应数据包括以下至少一种:响应头信息、响应消息体。
14.根据权利要求10所述的装置,其特征在于,所述获取模块用于:
获取所述应用程序的客户端通过应用程序仿真设备发送的所述指定业务请求,其中,所述应用程序仿真设备为安装在应用程序的开发环境中的设备。
15.根据权利要求10所述的装置,其特征在于,所述装置还包括:
配置模块,用于在获取应用程序的客户端发送的指定业务请求之前,将预先抓取到的所述数据包按照预设格式进行配置。
16.根据权利要求15所述的装置,其特征在于,所述配置模块包括:
存放单元,用于将预先抓取到的所述数据包存放至与所述数据包对应的目录上;
配置单元,用于配置所述应用程序和所述数据包的对应关系。
17.根据权利要求16所述的装置,其特征在于,所述配置单元用于配置所述应用程序所在的主机地址、所述应用程序的端口号、所述每个业务的执行路径、所述数据包在所述应用程序服务器中的存储路径。
18.一种应用程序的开发装置,其特征在于,包括:
发送模块,用于向应用程序服务器发送指定业务请求,其中,所述指定业务请求为用于执行业务的请求数据;
接收模块,用于接收所述应用程序服务器从数据包中查找的与所述指定业务请求对应的指定响应数据,其中,所述数据包为预先抓取到的数据包,并且所述数据包中包括在运行每个业务时向所述应用程序发送的业务请求中携带的请求数据和所述应用程序响应于所述请求数据的响应数据;
解析模块,用于对所述指定响应数据进行解析。
19.一种应用程序的开发***,其特征在于,包括:
应用程序的客户端,用于发送指定业务请求,其中,所述指定业务请求为所述应用程序的客户端发送的用于执行业务的请求数据;
应用程序服务器,用于接收所述指定业务请求,并根据所述指定业务请求在数据包中查找与所述指定业务请求对应的指定响应数据,并将所述指定响应数据发送至所述应用程序的客户端进行解析,其中,所述数据包为预先抓取到的数据包,并且所述数据包中包括在运行每个业务时向所述应用程序发送的业务请求的请求数据和所述应用程序响应于所述请求数据的响应数据。
20.根据权利要求19所述的***,其特征在于,所述应用程序服务器还用于将预先抓取到的所述数据包按照预设格式进行配置。
21.根据权利要求19所述的***,其特征在于,所述***还包括:
应用程序的仿真设备,其中,所述应用程序的客户端安装在所述仿真设备,所述应用程序的客户端通过所述仿真设备发送所述指定业务请求。
22.根据权利要求19所述的***,其特征在于,所述应用程序服务器和所述应用程序仿真设备通过以下任一种方式进行部署:单机部署、局域网部署和公网部署。
23.根据权利要求19至22中任一项所述的***,其特征在于,所述请求数据包括以下至少之一:所述应用程序所在的主机地址、所述应用程序的端口号、所述指定业务请求的执行路径、所述指定业务请求的请求头信息、所述指定业务请求的请求参数、所述指定业务请求的请求方法;所述响应数据包括以下至少一种:响应头信息、响应消息体。
CN201610397136.XA 2016-06-07 2016-06-07 应用程序的开发方法、装置及*** Withdrawn CN107479907A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201610397136.XA CN107479907A (zh) 2016-06-07 2016-06-07 应用程序的开发方法、装置及***
PCT/CN2017/087470 WO2017211302A1 (zh) 2016-06-07 2017-06-07 应用程序的开发方法、装置及***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610397136.XA CN107479907A (zh) 2016-06-07 2016-06-07 应用程序的开发方法、装置及***

Publications (1)

Publication Number Publication Date
CN107479907A true CN107479907A (zh) 2017-12-15

Family

ID=60577594

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610397136.XA Withdrawn CN107479907A (zh) 2016-06-07 2016-06-07 应用程序的开发方法、装置及***

Country Status (2)

Country Link
CN (1) CN107479907A (zh)
WO (1) WO2017211302A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109766256A (zh) * 2018-12-21 2019-05-17 中国平安财产保险股份有限公司 应用程序中h5页面性能测试方法、装置和计算机设备
CN111857685A (zh) * 2020-07-16 2020-10-30 武汉秒开网络科技有限公司 一种自助软件定制及远程自动化测试的方法及***

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111104577B (zh) * 2019-10-31 2023-11-14 北京金堤科技有限公司 数据处理方法、装置、计算机可读存储介质及电子设备
CN110855767B (zh) * 2019-11-06 2022-07-01 北京字节跳动网络技术有限公司 一种操作请求的响应方法、装置、设备和存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102385582A (zh) * 2010-08-31 2012-03-21 中兴通讯股份有限公司 生产测试数据处理方法、服务器及***
CN103309677A (zh) * 2013-06-28 2013-09-18 北京小米科技有限责任公司 内置资源管理方法、装置及终端
CN105094787A (zh) * 2014-05-21 2015-11-25 中兴通讯股份有限公司 企业互联网应用的处理方法及装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8364795B2 (en) * 2009-12-11 2013-01-29 Microsoft Corporation Search service administration web service protocol
CN104216695B (zh) * 2013-06-03 2018-08-24 阿里巴巴集团控股有限公司 提供页面待展现信息及展现页面信息的方法及***

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102385582A (zh) * 2010-08-31 2012-03-21 中兴通讯股份有限公司 生产测试数据处理方法、服务器及***
CN103309677A (zh) * 2013-06-28 2013-09-18 北京小米科技有限责任公司 内置资源管理方法、装置及终端
CN105094787A (zh) * 2014-05-21 2015-11-25 中兴通讯股份有限公司 企业互联网应用的处理方法及装置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109766256A (zh) * 2018-12-21 2019-05-17 中国平安财产保险股份有限公司 应用程序中h5页面性能测试方法、装置和计算机设备
CN109766256B (zh) * 2018-12-21 2023-02-07 中国平安财产保险股份有限公司 应用程序中h5页面性能测试方法、装置和计算机设备
CN111857685A (zh) * 2020-07-16 2020-10-30 武汉秒开网络科技有限公司 一种自助软件定制及远程自动化测试的方法及***

Also Published As

Publication number Publication date
WO2017211302A1 (zh) 2017-12-14

Similar Documents

Publication Publication Date Title
CN106789259B (zh) 一种LoRa核心网***及实现方法
CN104967596B (zh) 用户终端与物联网设备绑定、通信的实现方法和装置
US7328269B1 (en) Apparatus and method for providing server state and attribute management for voice enabled web applications
EP1757070B1 (en) Protocol conversion &#34;bearer independent protocol (bip)&#34; - tcp/ip for communication between sim and terminal
US7359978B2 (en) Providing secure access through network firewalls
US20070157304A1 (en) Method, apparatus and computer program product for automatic cookie synchronization between distinct web browsers
CN102333110B (zh) 用于移动设备的具有动态翻译用户主页的vpn网络客户端
CN107479907A (zh) 应用程序的开发方法、装置及***
CN106972974B (zh) 一种电力LTE无线终端的Web网管***及其终端认证方法
US20020156896A1 (en) System and method for providing a gateway between mobile two-way messaging devices and remote computer networks
CN110399578A (zh) 页面访问方法及装置
CN107222561A (zh) 一种传输层反向代理方法
CN102761554A (zh) 向客户端推送信息的方法、装置及***
CN107332857B (zh) 一种网络数据传输方法、装置、***和存储介质
CN108418847A (zh) 一种网络流量缓存***、方法及装置
CN107104782A (zh) 数据传输方法及装置
CN107766509A (zh) 一种网页静态备份的方法和装置
CN103763125A (zh) 运营商网络实际用户数的统计方法和装置
CN107113325A (zh) 用于选择性传输加速器操作的***和方法
US20040167960A1 (en) Network service interceptor
CN104811439A (zh) 一种Portal认证的方法和设备
EP1229449B1 (en) Remote device diagnostics
CN101527646B (zh) 一种web网络管理***和方法
CN103368783A (zh) 一种网络通信过程的监听方法、***和设备
CN110674436A (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
WW01 Invention patent application withdrawn after publication
WW01 Invention patent application withdrawn after publication

Application publication date: 20171215