CN112199082B - 一种http响应处理方法、装置、电子设备及存储介质 - Google Patents

一种http响应处理方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN112199082B
CN112199082B CN202011096959.1A CN202011096959A CN112199082B CN 112199082 B CN112199082 B CN 112199082B CN 202011096959 A CN202011096959 A CN 202011096959A CN 112199082 B CN112199082 B CN 112199082B
Authority
CN
China
Prior art keywords
grouping
http response
attribute
information
packet
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
Application number
CN202011096959.1A
Other languages
English (en)
Other versions
CN112199082A (zh
Inventor
黄涛
范渊
吴卓群
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
DBAPPSecurity Co Ltd
Original Assignee
DBAPPSecurity 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 DBAPPSecurity Co Ltd filed Critical DBAPPSecurity Co Ltd
Priority to CN202011096959.1A priority Critical patent/CN112199082B/zh
Publication of CN112199082A publication Critical patent/CN112199082A/zh
Application granted granted Critical
Publication of CN112199082B publication Critical patent/CN112199082B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/31Programming languages or programming paradigms
    • G06F8/315Object-oriented languages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明公开了一种HTTP响应处理方法,包括:当AOP属性分组方法检测到带有返回值的HTTP响应时,查询HTTP响应对应的函数方法;检测函数方法是否配置有第一分组标记;其中,第一分组标记是用于为对应实体类中的属性进行分组的标记;若是,则利用代理模式及第一分组标记确定函数方法的分组信息;其中,分组信息包括函数方法对应的实体类中需要重新分组的字段名称和数据类型;根据分组信息对返回值进行重新分组得到新HTTP响应,并向HTTP请求发送端返回新HTTP响应。本方法可利用相同实体类向不同对象发送不同数据,以此解决数据泄露问题。本申请还公开了一种HTTP响应处理装置、电子设备及存储介质,具有上述有益效果。

Description

一种HTTP响应处理方法、装置、电子设备及存储介质
技术领域
本发明涉及软件开发领域,特别涉及一种HTTP响应处理方法、装置、电子设备及存储介质。
背景技术
在Web开发中,程序员通常采用实体类进行数据交换,例如JavaBean包装的实体类。实体类采用一对一的数据交互方式,例如当数据库中存有a,b,c三个属性时,为保证数据一致,与数据库对应的实体类也必然有a,b,c三个属性。而利用该实体类向前端展示界面传输数据时也会将所有属性一同返回,这就容易造成向前端展示界面传送不需要的数据,甚至会传送敏感数据,造成泄漏敏感数据、暴露业务逻辑等数据安全问题。
相关技术中,为了实现利用实体类向不同对象发送不同的数据,一般采用新建实体类,替代原有实体类的方法,或者是利用继承的方法对原有的实体类进行修改,而这样的方法会显著提升工程内的代码重复率,造成严重的代码冗余问题,给开发人员编写代码及后期维护带来的很大的负担。
因此,如何高效便捷地解决实体类属性分组问题,是本领域技术人员需要面对的技术问题。
发明内容
本发明的目的是提供一种HTTP响应处理方法、装置、电子设备及存储介质,可高效便捷地解决实体类属性分组问题,并根据不同的需求向不同的对象发送不同的数据,以此解决数据泄露问题。
为解决上述技术问题,本发明提供一种HTTP响应处理方法,包括:
当AOP属性分组方法检测到带有返回值的HTTP响应时,查询所述HTTP响应对应的函数方法;
检测所述函数方法是否配置有第一分组标记;其中,所述第一分组标记是用于为对应实体类中的属性进行分组的标记;
若是,则利用代理模式及所述第一分组标记确定所述函数方法的分组信息;其中,所述分组信息包括所述函数方法对应的实体类中需要重新分组的字段名称和数据类型;
根据所述分组信息对所述返回值进行重新分组得到新HTTP响应,并向HTTP请求发送端返回所述新HTTP响应。
可选的,所述根据所述分组信息对所述返回值进行重新分组得到新HTTP响应,包括:
生成JSON类型的新实例;
将所述HTTP响应的返回值中符合所述分组信息要求的字段存入所述新实例;
将所述新实例作为所述新HTTP响应。
可选的,所述将所述HTTP响应的返回值中符合所述分组信息要求的字段存入所述新实例,包括:
提取所述HTTP响应的返回值中符合所述分组信息要求的字段;
利用预设方式处理所述字段;其中,所述预设方式包括加密、替换和自定义处理方式中的任一种或任几种的组合;
将处理后的字段存入所述新实例。
可选的,所述利用代理模式及所述第一分组标记确定所述函数方法的分组信息,包括:
利用所述代理模式获取所述函数方法对应实体类中属性的属性信息及第二分组标记;其中,所述属性信息包括所述属性的字段名称和数据类型;
提取所述第二分组标记与所述第一分组标记相同的属性作为分组属性,并将所述分组属性对应的属性信息作为所述分组信息。
可选的,在AOP属性分组方法检测到带有返回值的HTTP响应之后,在查询所述HTTP响应对应的函数方法之前,包括:
判断所述HTTP响应是否包含错误响应的信息;
若否,则执行查询所述HTTP响应对应的函数方法的步骤。
可选的,在AOP属性分组方法检测到带有返回值的HTTP响应之前,还包括:
为所述实体类的属性上配置第二分组标记;
为需要返回特定分组的函数方法上配置所述第一分组标记。
可选的,在为需要返回特定分组的函数方法上配置所述分组信息之后,还包括:
检测同一所述属性上的第二分组标记是否不重复,得到第一检测结果;
检测所述函数方法上的第一分组标记是否被定义,得到第二检测结果;
检测所述第一分组标记定义的返回值是否属于对应的实体类,得到第三检测结果;
当所述第一检测结果、所述第二检测结果及所述第三检测结果均为是时,判定所述分组信息和所述分组标记通过校验,并执行利用AOP属性分组方法检测带有返回值的HTTP响应的步骤。
本发明还提供一种HTTP响应处理装置,包括:
查询模块,用于当AOP属性分组方法检测到带有返回值的HTTP响应时,查询所述HTTP响应对应的函数方法;
检测模块,用于检测所述函数方法是否配置有第一分组标记;其中,所述第一分组标记是用于为对应实体类中的属性进行分组的标记;
信息确定模块,用于利用代理模式及所述第一分组标记确定所述函数方法的分组信息;其中,所述分组信息包括所述函数方法对应的实体类中需要重新分组的字段名称和数据类型;
分组模块,用于根据所述分组信息对所述返回值进行重新分组得到新HTTP响应,并向HTTP请求发送端返回所述新HTTP响应。
本发明还提供一种电子设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上述所述的HTTP响应处理方法的步骤。
本发明还提供一种存储介质,所述存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述所述的HTTP响应处理方法的步骤。
本发明提供了一种HTTP响应处理方法,包括:当AOP属性分组方法检测到带有返回值的HTTP响应时,查询所述HTTP响应对应的函数方法;检测所述函数方法是否配置有第一分组标记;其中,所述第一分组标记是用于为对应实体类中的属性进行分组的标记;若是,则利用代理模式及所述第一分组标记确定所述函数方法的分组信息;其中,所述分组信息包括所述函数方法对应的实体类中需要重新分组的字段名称和数据类型;根据所述分组信息对所述返回值进行重新分组得到新HTTP响应,并向HTTP请求发送端返回所述新HTTP响应。
可见,本方法使用AOP属性分组方法,在无需新建实体类或继承原有实体类的情况下,利用HTTP响应对应函数方法的第一分组标记,确定函数方法对应实体类中的分组信息,并利用该分组信息对HTTP响应进行重新分组,最终达到利用相同实体类向不同对象发送不同数据的效果,有效减少了代码的冗余。同时,当HTTP响应对应的方法需要更换数据形式时,只需重新配置分组信息即可,无需重新建立实体类或重新继承原有实体类,降低了后期维护的成本并提升了效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例所提供的一种HTTP响应处理方法的流程图;
图2为本发明实施例所提供的一种实体类属性分组的示意图;
图3为本发明实施例所提供的HTTP响应处理装置的结构框图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
相关技术中,为了实现利用实体类向不同对象发送不同的数据,一般采用新建实体类替代原有实体类,或利用继承的方式修改原有实体类的方式,而这些方法将会显著提升工程内的代码重复率,为程序开发人员的开发及后期维护阶段带来麻烦。同时当对象的数据需求发生改变时,需要重新建立实体类或者继承原有实体类,也会增加程序开发人员维护程序的工作量。本申请实施例采用面向切面编程的方法,根据HTTP响应对应函数方法的分组标识,将原有实体类对应的HTTP响应进行重新分组,以实现利用相同实体类向不同对象发送不同数据的效果,当对象的数据需求发生改变时,仅需重新配置分组标识即可,可有效降低代码的重复率。具体请参考图1,图1为本申请实施例所提供的一种HTTP响应包处理方法的流程图,该方法可以包括:
S100、当AOP属性分组方法检测到带有返回值的HTTP响应时,查询HTTP响应对应的函数方法。
相关技术中,利用新建实体类或继承原有实体类等方式,将会提升代码的重复率,并增加程序开发人员开发和后期维护的成本。而本申请实施例并不需要对原有实体类进行修改,而是采用AOP属性分组方法,根据HTTP响应对应函数方法的分组需求,对带有返回值的HTTP响应包进行重新分组,无需新建实体类或继承原有实体类,便可实现利用相同实体类为不同的对象发送不同数据的目的。其中,AOP(Aspect Oriented Programming,面向切片编程),HTTP(HyperText Transfer Protocol,超文本传输协议)。可以理解的是,由于本AOP属性分组方法针对的是返回值,因此只在检测到带有返回值的HTTP响应时才会进行后续的操作。同时,由于不同函数方法具有不同的数据传输需求,因此需要对该HTTP响应对应的函数方法进行查询,以确定函数方法的数据传输需求。
需要说明的是,本申请实施例并不限定AOP属性分组方法基于的AOP开发工具,例如该工具可以是AspectJ、JBoss、aspectwerkz或Spring AOP,用户可根据实际需求及工具的优缺点选择合适的开发工具。其中,AspectJ是成熟的AOP开发工具,但过于复杂,JBoss基于代理模式API,而aspectwerkz和Spring AOP基于字节码。由于Spring框架在Java项目中应用广泛,且对本地应用程序及网络应用程序开发有诸多支持,因此在本申请实施例中,AOP属性分组方法可以基于Spring AOP开发工具。进一步,本申请实施例并不限定SpringAOP的版本,可为任意版本。可以理解的是,不同Spring AOP版本将会影响AOP属性分组方法的编码形式及后续的配置形式,但均能本申请实施例利用相同实体类为不同对象发送不同数据的目的。
本申请实施例也不限定AOP属性分组方法对带有返回值的HTTP响应的检测方法,用户可参考相关AOP技术对HTTP请求的处理方法。本申请实施例也不限定AOP属性分组方法对函数方法的查询方式,该方式可以为对函数方法进行定位,或其他查询方式,用户可参考相关AOP技术对函数方法的查询定位方法。
进一步,本申请实施例并不对AOP属性分组方法是否需要判断HTTP响应的响应状态进行限定。可以理解的是,受到网络传输、服务器状态、HTTP请求格式等诸多因素的影响,服务器并不能保证成功解析HTTP请求,进而不能保证为HTTP请求发送端正确地返回数据库中的数据,而此类HTTP请求对应的HTTP响应将无法被AOP属性分组方法正确修改。因此,为了提升AOP属性分组方法对HTTP响应包进行修改的成功率,在AOP属性分组方法检测到带有返回值的HTTP响应之后,在查询HTTP响应对应的函数方法之前,还可以包括:
判断HTTP响应是否包含错误响应的信息;
若是,则向HTTP请求发送端返回HTTP响应;
若否,则执行查询HTTP响应对应的函数方法的步骤。
可以理解的是,当HTTP响应中包含错误响应的信息,则说明服务器端无法解析或错误解析HTTP请求,此时直接包含错误响应信息的HTTP响应返回给HTTP请求发送端即可。
需要说明的是,本申请实施例并不限定错误响应信息的具体形式,用户可参考HTTP错误响应的相关技术。本申请实施例同样不限定对HTTP错误响应的判断方法,用户可参考检测HTTP错误响应的相关技术。
S101、检测函数方法是否配置有第一分组标记;其中,第一分组标记是用于为对应实体类中的属性进行分组的标记。
由于不同函数方法具有不同的数据传输需求,因此AOP属性分组方法需要检测函数方法是否配置有第一分组标记,以此确定该函数方法是否需要对实体类中的属性进行分组,若函数方法没有配置第一分组标记,则说明该函数方法并不需要对实体类中的属性进行分组,若函数方法配置有第一分组标记,则可利用该标记确定函数方法的分组需求,并对HTTP响应包进行重新分组。
需要说明的是,本申请实施例并不限定第一分组标记的具体形式,只要该标记能够被正确识别且唯一指明该函数方法的分组需求即可,例如该第一分组标记可以是分组ID、哈希值等。由于使用分组ID能够提升程序开发人员开发和后期维护的效率,因此在本申请实施例中第一分组标记可以为分组ID。进一步,本申请实施例并不限定分组ID的具体形式,该分组ID可以为数字ID、字符ID、混合ID或自定义ID,用户可根据具体需求选择合适的ID形式。
本申请实施例也不限定函数方法对第一分组标记的配置方法,该配置方法受AOP开发工具以及开发工具的版本影响,用户可根据AOP开发工具及版本选择合适的配置方式,例如当AOP开发工具为Spring AOP时,第一分组标记的配置方法有添加Spring注解或添加配置文件两种方式。
本申请实施例也不限定对第一分组标记的检测方法,该方法受限于第一分组标记的配置方法,用户可根据配置方法选择合适的检测方法,例如当第一分组标记的配置方法为Spring注解时,可以检测是否存在该注解来确定第一分组标记;当第一分组标记的配置方法为添加配置文件时,可以读取该配置文件来确定第一分组标记。
S102、若否,则向HTTP请求发送端返回HTTP响应。
可以理解的是,若HTTP响应对应的函数方法没有配置过第一分组标记,则说明该函数方法并不需要将实体类中的属性进行重新分组,因此直接向HTTP请求发送端返回HTTP响应即可。
S103、若是,则利用代理模式及第一分组标记确定函数方法的分组信息;其中,分组信息包括函数方法对应的实体类中需要重新分组的字段名称和数据类型。
由于第一分组标记用于表明函数方法的数据传输需求,因此在检测到第一分组标记后便可利用该标记及代理模式确定具体的分组信息,并对HTTP响应进行重新包装。其中,代理模式(Proxy Pattern)是Java语言常用设计模式之一,可对其他对象提供代理以控制该对象的访问。可以理解的是,由于同一实体类中的属性依靠字段名称和数据类型相互区别,因此分组信息至少包括字段名称和数据类型。本申请实施例并不限定分组信息的其他内容,例如可以是字段长度、字段结构等,用户可根据实际需求选择分组信息的其他内容。
需要说明的是,本申请实施例并不限定利用代理模式在确定函数方法的分组信息过程中的功能,由于代理模式采用在实际对象和调用者之间插入代理对象,并执行指定代码的思想,因此代理模式在本申请实施例中可采用各种编码方式实现各种自定义功能,用户可根据实际情况对代理模式的功能进行选择,例如该功能可以为查询函数方法对应实体类的属性信息,或者查询函数方法对应实体类的分组配置。进一步,本申请实施例并不限定确定函数方法分组信息的具体过程,该过程受代理模式的功能及第一分组标记的具体形式影响,例如该过程可以为代理模式查询实体类的分组配置,并根据第一分组标记确定函数方法的分组信息,也可以为代理模式查询函数方法对应实体类的属性信息,而利用第一标记信息确定实体类属性的分组配置,进而利用分组配置及属性信息确定函数方法的分组信息。出于对编码便捷性的考虑,本申请实施例可以利用代理模式查询函数方法对应实体类的属性信息,而利用第一标记信息确定实体类的分组配置,进而利用分组配置及属性信息确定函数方法的分组信息。进一步,本申请实施例并不限定分组配置的具体形式,该形式可以为配置文件,可以为实体类属性上的分组标记。
在一种可能的情况中,该过程可以为:
利用代理模式获取函数方法对应实体类中属性的属性信息及第二分组标记;其中,属性信息包括属性的字段名称和数据类型;
提取第二分组标记与第一分组标记相同的属性作为分组属性,并将分组属性对应的属性信息作为分组信息。
可以理解的是,由于实体类中的属性依靠字段名称和数据类型相互区分,因此本申请实施例中,属性信息至少包含属性的字段名称和数据类型。本申请实施例并不限定属性信息的其他内容,该内容与分组信息的选择有关,用户可根据分组信息的选择确定需要的属性信息。
本申请实施例并不限定第二分组标记的具体形式及配置方法,其中第二分组标记只要能够与第一分组标记对应即可,该部分描述与第一分组标记的描述一致,可参考第一分组标记部分的相关描述。
进一步,本申请实施例并不限定代理模式的具体实现形式,例如可以是动态代理,也可以是静态代理,也可以是其他代理形式,用户可参考相关Java语言的代理模式选择合适的实现形式。考虑到动态代理的实现方式比静态代理简单,且易于编码,因此在本申请实施例中,可以采用动态代理的方式。
S104、根据分组信息对返回值进行重新分组得到新HTTP响应,并向HTTP请求发送端返回新HTTP响应。
本申请实施例并不限定返回值在HTTP响应中的具体形式,该形式受服务器能够接收的数据格式和HTTP请求发送端能够接收的数据格式影响,只要该返回值能够被HTTP请求发送端正确解析即可,用户可参考数据交换格式的相关技术,例如该形式可以为JSON或BSON,其中JSON(JavaScript Object Notation,JS对象简谱),BSON(Binary JSON,二进制JSON)。由于JSON易于阅读和编写、同时也易于机器解析和生成,因此在本申请实施例中,可以返回值在HTTP响应中的形式可以为JSON。
本申请实施例也不对重新分组的具体过程进行限定,例如该过程可以为利用分组信息直接对HTTP响应进行修改,也可以新建实例,并将需要重新分组的字段存入新实例中。为了保护原有数据,在本申请实施例中可以采用新建实例的方式。本申请实施例同样不限定实例的具体格式,可以理解的是,该格式应当与原有HTTP响应中的返回值形式一致,这样才能保证数据一致性,因此用户可根据HTTP响应中的返回值形式,选择新建实例的具体格式。
在一种可能的情况中,根据分组信息对返回值进行重新分组得到新HTTP响应的具体过程可以为:
生成JSON类型的新实例;
将HTTP响应的返回值中符合分组信息要求的字段存入新实例;
将新实例作为新HTTP响应。
进一步,本申请实施例并不对AOP属性分组方法在将符合要求的字段存入新实例之前是否处理字段进行限定。由于利用相同实体类向HTTP请求发送端返回数据时,数据的字段名称和数据类型必须严格遵守实体类的属性信息要求,难以满足HTTP请求发送端满足不断变化的数据形式需求,因此,为了满足HTTP请求发送端的需求,同时便于后续的功能升级,在本申请实施例中,将HTTP响应的返回值中符合分组信息要求的字段存入新实例的过程可以包括:
提取HTTP响应的返回值中符合分组信息要求的字段;
利用预设方式处理字段;其中,预设方式包括加密、替换和自定义处理方式中的任一种或任几种的组合;
将处理后的字段存入新实例。
需要说明的是,本申请实施例并不对加密、替换和自定义处理方式的具体实现形式进行限定,用户可参考相关技术,选择适合处理字段的预设方式。需要说明的是,当预设方式为自定义函数方法时,为了保证数据安全,需要在AOP属性分组方法内指定接口,并采用实例化接口的方式编写该自定义函数方法。
基于上述实施例,本申请实施例使用AOP属性分组方法,在无需新建实体类或继承原有实体类的情况下,利用HTTP响应对应函数方法的第一分组标记,确定函数方法对应实体类中的分组信息,并利用该分组信息对HTTP响应进行重新分组,最终达到利用相同实体类向不同对象发送不同数据的效果,有效减少了代码的冗余。同时,当HTTP响应对应的方法需要更换数据形式时,只需重新配置分组信息即可,无需重新建立实体类或重新继承原有实体类,降低了后期维护的成本并提升了效率。
基于上述实施例,为了达到利用相同实体类向不同对象发送不同数据的目的,需要对第一分组标记、第二分组标记进行配置。因此,在AOP属性分组方法检测到带有返回值的HTTP响应之前,还可以包括:
S200、为实体类的属性上配置第二分组标记;
S201、为需要返回特定分组的函数方法上配置第一分组标记。
本申请实施例并不限定第一分组标记和第二分组标记的具体形式及配置方式,该部分的描述与对第一分组标记、第二分组标记部分的描述一致,可参考对第一分组标记及第二分组标记部分的描述。
需要说明的是,本申请实施例并不限制同一属性上第二分组标记的数量,可以为一个,也可以为多个。当该属性仅被划分至一个分组时,该属性只拥有一个第二分组标记,若该属性被划分至多个分组时,该属性便拥有多个第二分组标记。同时,本申请实施例也不限制同一函数方法上第一分组标记的数量,可以为一个,也可以为多个。当同一函数方法仅有一种返回值时,该方法可以只有一个第一分组标记,当该函数方法有多种业务逻辑,对应多种返回值时,可以拥有多个第一分组标记。
请参见图2,图2为本申请实施例提供的一种实体类属性分组的示意图。其中,实体类A带有三个属性:类属性a、类属性b和类属性c,类属性a带有两个第二分组标记:标题1和标题2,类属性b带有两个第二分组标记:标题1和标题2,类属性c带有两个第二分组标记:标题1和标题3。因此,根据上述配置,实体类A中的属性一共被分为3组,其中标题1分组中包含类属性a、类属性b和类属性c,标题2分组包含类属性a和类属性b,标题3分组包含类属性c。而函数方法可根据上述分类情况配置第一分组标记,例如当函数方法需要向HTTP请求发送端返回实体类A中的类属性a和类属性b时,仅需将标题2设置为第一分组标记即可。
基于上述实施例,只要在利用AOP属性分组对HTTP响应进行重新分组之前,为函数方法和对应的实体类配置了第一分组标记和第二分组标记,便可实现利用相同实体类向不同对象发送不同数据的效果,高效便捷,有效降低代码冗余。同时,当后期维护需要调整HTTP响应的分组时,仅需重新配置第一分组标记和第二分组标记即可,降低了程序开发人员后期维护的成本。
基于上述实施例,为了确保正确配置第一分组标记和第二分组标记,在为需要返回特定分组的函数方法上配置分组信息之后,还可以包括:
S300、检测同一属性上的第二分组标记是否不重复,得到第一检测结果。
可以理解的是,同一属性上不应存在相同的第二分组标记,若出现重复则会造成编码错误,因此需要保证同一属性上的第二分组标记不重复。
需要说明的是,本申请实施例并不限定重复检测的检测方式,用户可参考代码重复检查的相关方法。
S301、检测函数方法上的第一分组标记是否被定义,得到第二检测结果。
可以理解的是,若函数方法上的第一分组标记没有在对应实体类中定义,那么第一分组标记便不具有对应的分组,进而导致函数方法无法利用该实体类返回任何数据,因此需保证函数方法上的第一分组标记已在对应实体类中被定义。
需要说明的是,本申请实施例并不限定检测第一分组标记是否被定义的检测方法,用户可参考相关编码技术。
S302、检测第一分组标记定义的返回值是否属于对应的实体类,得到第三检测结果。
可以理解的是,由于函数方法的返回值需要与实体类的属性相对应,即返回值的字段名称、数据类型需要与属性的字段名称、数据类型相对应,因而,若第一分组标记定义的返回值的字段名称与数据类型不存在于实体类,那么函数方法也无法利用该实体类返回数据。因此需要保证第一分组标记第一的返回值属于对应的实体类,以保证返回值正确。
需要说明的是,本申请实施例并不限定检测第一分组标记定义的返回值是否属于对应的实体类的检测方法,用户可参考相关编码技术。
本申请实施例不限定第一检测结果、第二检测结果和第三检测结果的具体形式,例如可以为数字、布尔值或者一小段代码。本申请实施例也不限定第一检测结果、第二检测结果及第三检测结果的展示方式,例如可以是控制台警告,也可以使在开发工具中高亮显示。
S303、当第一检测结果、第二检测结果及第三检测结果均为是时,判定分组信息和分组标记通过校验,并执行利用AOP属性分组方法检测带有返回值的HTTP响应的步骤。
基于上述实施例,在第一分组标记和第二分组标记配置之后,需要对两标记进行校验检测,以保证标记不重复且被正确定义,确保AOP属性分组方法能够利用第一分组标记和第二分组标记完成对实体类属性的重新分组。
下面对本发明实施例提供的HTTP响应处理装置、电子设备及存储介质进行介绍,下文描述的行人轨迹生成的装置、电子设备及存储介质与上文行人轨迹生成方法可相互对应参照。
请参见图3,图3为本申请实施例提供的一种HTTP响应处理装置的结构框图,该装置可以包括:
查询模块100,用于当AOP属性分组方法检测到带有返回值的HTTP响应时,查询HTTP响应对应的函数方法;
检测模块200,用于检测函数方法是否配置有第一分组标记;其中,第一分组标记是用于为对应实体类中的属性进行分组的标记;
信息确定模块300,用于利用代理模式及第一分组标记确定函数方法的分组信息;其中,分组信息包括函数方法对应的实体类中需要重新分组的字段名称和数据类型;
分组模块400,用于根据分组信息对返回值进行重新分组得到新HTTP响应,并向HTTP请求发送端返回新HTTP响应。
可选的,分组模块400,可以包括:
实例生成模块,用于生成JSON类型的新实例;
第二分组模块,用于将HTTP响应的返回值中符合分组信息要求的字段存入新实例;
可选的,第二分组模块,可以包括:
第一提取模块,用于提取HTTP响应的返回值中符合分组信息要求的字段;
处理模块,用于利用预设方式处理字段;其中,预设方式包括加密、替换和自定义处理方式中的任一种或任几种的组合;
第三分组模块,用于将处理后的字段存入新实例。
可选的,信息确定模块300,可以包括:
第二查询模块,用于利用代理模式获取函数方法对应实体类中属性的属性信息及第二分组标记;其中,属性信息包括属性的字段名称和数据类型;
第二提取模块,用于提取第二分组标记与第一分组标记相同的属性作为分组属性,并将分组属性对应的属性信息作为分组信息。
可选的,HTTP响应处理装置,还可以包括:
判断模块,用于判断HTTP响应是否包含错误响应的信息;
可选的,HTTP响应处理装置,还可以包括:
第一配置模块,用于为实体类的属性上配置第二分组标记;
第二配置模块,用于为需要返回特定分组的函数方法上配置第一分组标记。
可选的,HTTP响应处理装置,还可以包括:
第二检测模块,用于检测同一属性上的第二分组标记是否不重复,得到第一检测结果;
第三检测模块,用于检测函数方法上的第一分组标记是否被定义,得到第二检测结果;
第四检测模块,用于检测第一分组标记定义的返回值是否属于对应的实体类,得到第三检测结果。
本申请实施例还提供一种电子设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行计算机程序时实现如上述的HTTP响应处理方法的步骤。
由于电子设备部分的实施例与HTTP响应处理方法部分的实施例相互对应,因此电子设备部分的实施例请参见HTTP响应处理方法部分的实施例的描述,这里暂不赘述。
本申请实施例还提供一种存储介质,存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述任意实施例所述的HTTP响应处理方法的步骤。如计算机程序被处理器执行时实现当AOP属性分组方法检测到带有返回值的HTTP响应时,查询HTTP响应对应的函数方法;检测函数方法是否配置有第一分组标记;其中,第一分组标记是用于为对应实体类中的属性进行分组的标记;若是,则利用代理模式及第一分组标记确定函数方法的分组信息;其中,分组信息包括函数方法对应的实体类中需要重新分组的字段名称和数据类型;根据分组信息对返回值进行重新分组得到新HTTP响应,并向HTTP请求发送端返回新HTTP响应。
该存储介质可以包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上对本发明所提供的一种HTTP响应处理方法、装置、电子设备及存储介质进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。

Claims (8)

1.一种HTTP响应处理方法,其特征在于,包括:
当AOP属性分组方法检测到带有返回值的HTTP响应时,查询所述HTTP响应对应的函数方法;
检测所述函数方法是否配置有第一分组标记;其中,所述第一分组标记是用于为对应实体类中的属性进行分组的标记;
若是,则利用代理模式及所述第一分组标记确定所述函数方法的分组信息;其中,所述分组信息包括所述函数方法对应的实体类中需要重新分组的字段名称和数据类型;其中,所述利用代理模式及所述第一分组标记确定所述函数方法的分组信息,包括:利用所述代理模式获取所述函数方法对应实体类中属性的属性信息及第二分组标记;其中,所述属性信息包括所述属性的字段名称和数据类型;提取所述第二分组标记与所述第一分组标记相同的属性作为分组属性,并将所述分组属性对应的属性信息作为所述分组信息;
根据所述分组信息对所述返回值进行重新分组得到新HTTP响应,并向HTTP请求发送端返回所述新HTTP响应;所述新HTTP响应用于根据所述函数方法所对应的实体类向目标对象发送目标数据;其中,所述根据所述分组信息对所述返回值进行重新分组得到新HTTP响应,包括:生成JSON类型的新实例;将所述HTTP响应的返回值中符合所述分组信息要求的字段存入所述新实例;将所述新实例作为所述新HTTP响应。
2.根据权利要求1所述的HTTP响应处理方法,其特征在于,所述将所述HTTP响应的返回值中符合所述分组信息要求的字段存入所述新实例,包括:
提取所述HTTP响应的返回值中符合所述分组信息要求的字段;
利用预设方式处理所述字段;其中,所述预设方式包括加密、替换和自定义处理方式中的任一种或任几种的组合;
将处理后的字段存入所述新实例。
3.根据权利要求1所述的HTTP响应处理方法,其特征在于,在AOP属性分组方法检测到带有返回值的HTTP响应之后,在查询所述HTTP响应对应的函数方法之前,包括:
判断所述HTTP响应是否包含错误响应的信息;
若否,则执行查询所述HTTP响应对应的函数方法的步骤。
4.根据权利要求1至3任一项所述的HTTP响应处理方法,其特征在于,在AOP属性分组方法检测到带有返回值的HTTP响应之前,还包括:
为所述实体类的属性上配置第二分组标记;
为需要返回特定分组的函数方法上配置所述第一分组标记。
5.根据权利要求4所述的HTTP响应处理方法,其特征在于,在为需要返回特定分组的函数方法上配置所述分组信息之后,还包括:
检测同一所述属性上的第二分组标记是否不重复,得到第一检测结果;
检测所述函数方法上的第一分组标记是否被定义,得到第二检测结果;
检测所述第一分组标记定义的返回值是否属于对应的实体类,得到第三检测结果;
当所述第一检测结果、所述第二检测结果及所述第三检测结果均为是时,判定所述分组信息和所述分组标记通过校验,并执行利用AOP属性分组方法检测带有返回值的HTTP响应的步骤。
6.一种HTTP响应处理装置,其特征在于,包括:
查询模块,用于当AOP属性分组方法检测到带有返回值的HTTP响应时,查询所述HTTP响应对应的函数方法;
检测模块,用于检测所述函数方法是否配置有第一分组标记;其中,所述第一分组标记是用于为对应实体类中的属性进行分组的标记;
信息确定模块,用于利用代理模式及所述第一分组标记确定所述函数方法的分组信息;其中,所述分组信息包括所述函数方法对应的实体类中需要重新分组的字段名称和数据类型;
分组模块,用于根据所述分组信息对所述返回值进行重新分组得到新HTTP响应,并向HTTP请求发送端返回所述新HTTP响应;所述新HTTP响应用于根据所述函数方法所对应的实体类向目标对象发送目标数据;
所述分组模块,具体用于生成JSON类型的新实例;将所述HTTP响应的返回值中符合所述分组信息要求的字段存入所述新实例;将所述新实例作为所述新HTTP响应;
所述信息确定模块,具体用于利用所述代理模式获取所述函数方法对应实体类中属性的属性信息及第二分组标记;其中,所述属性信息包括所述属性的字段名称和数据类型;提取所述第二分组标记与所述第一分组标记相同的属性作为分组属性,并将所述分组属性对应的属性信息作为所述分组信息。
7.一种电子设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至5任一项所述的HTTP响应处理方法的步骤。
8.一种存储介质,其特征在于,所述存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至5任一项所述的HTTP响应处理方法的步骤。
CN202011096959.1A 2020-10-14 2020-10-14 一种http响应处理方法、装置、电子设备及存储介质 Active CN112199082B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011096959.1A CN112199082B (zh) 2020-10-14 2020-10-14 一种http响应处理方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011096959.1A CN112199082B (zh) 2020-10-14 2020-10-14 一种http响应处理方法、装置、电子设备及存储介质

Publications (2)

Publication Number Publication Date
CN112199082A CN112199082A (zh) 2021-01-08
CN112199082B true CN112199082B (zh) 2023-04-14

Family

ID=74009052

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011096959.1A Active CN112199082B (zh) 2020-10-14 2020-10-14 一种http响应处理方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN112199082B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101079070A (zh) * 2006-05-26 2007-11-28 国际商业机器公司 用于响应于对信息的查询的计算机和方法
CN102710460A (zh) * 2012-05-14 2012-10-03 南京邮电大学 一种基于单子技术的Web服务测试数据自动生成方法
CN109446648A (zh) * 2018-10-29 2019-03-08 北京航空航天大学 仿真服务建立方法及装置

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015136060A (ja) * 2014-01-17 2015-07-27 ソニー株式会社 通信装置、通信データ生成方法、および通信データ処理方法
US9892208B2 (en) * 2014-04-02 2018-02-13 Microsoft Technology Licensing, Llc Entity and attribute resolution in conversational applications
CN104754065B (zh) * 2015-04-28 2018-01-16 湖南科技大学 基于内容中心网络的动态分布Web资源管理方法及系统
CN107346320B (zh) * 2016-05-06 2020-09-01 北京神州泰岳软件股份有限公司 一种数据调用方法和装置
CN111488515A (zh) * 2019-01-25 2020-08-04 华为技术有限公司 信息查询方法、装置、设备及存储介质
CN111352610A (zh) * 2020-03-03 2020-06-30 五八有限公司 接口返回值修改方法、装置、电子设备及存储介质

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101079070A (zh) * 2006-05-26 2007-11-28 国际商业机器公司 用于响应于对信息的查询的计算机和方法
CN102710460A (zh) * 2012-05-14 2012-10-03 南京邮电大学 一种基于单子技术的Web服务测试数据自动生成方法
CN109446648A (zh) * 2018-10-29 2019-03-08 北京航空航天大学 仿真服务建立方法及装置

Also Published As

Publication number Publication date
CN112199082A (zh) 2021-01-08

Similar Documents

Publication Publication Date Title
CN107645562B (zh) 数据传输处理方法、装置、设备及系统
US8413041B2 (en) Apparatus and method for parsing XML document by using external XML validator
CN110688307B (zh) JavaScript代码检测方法、装置、设备和存储介质
CN109274773B (zh) 一种实现远程服务调用方法、装置和系统
US11150896B2 (en) Automated generation of service definitions for message queue application clients
CN106330601A (zh) 测试用例生成方法及装置
CN104866512A (zh) 提取网页内容的方法、装置及系统
CN109145235B (zh) 用于解析网页的方法、装置及电子设备
CN112118286A (zh) 基于mdc多线程链路追踪方法、装置及计算机可读存储介质
CN106709323A (zh) 一种识别伪装下载链接的方法和装置
CN110187986B (zh) 一种命令管理方法、系统、装置及计算机可读存储介质
TW201232404A (en) Software development
CN106843934A (zh) 升级文件的处理方法和装置
CN110908967A (zh) 用于存储日志的方法、装置、设备和计算机可读介质
CN113254408B (zh) 一种不可见标记的添加方法、装置、介质及电子设备
CN104461531A (zh) 一种报表系统自定义函数的实现方法
CN111884876A (zh) 一种网络协议的协议类型检测方法、装置、设备及介质
CN105760761A (zh) 软件行为分析方法和装置
CN113703862A (zh) 基于配置的接口调用方法、装置、设备及存储介质
CN111240772B (zh) 一种基于区块链的数据处理方法、装置及存储介质
CN112199082B (zh) 一种http响应处理方法、装置、电子设备及存储介质
CN110598466B (zh) 离线字段校验方法、装置、设备及计算机可读存储介质
KR101996358B1 (ko) 웹 애플리케이션의 동적 분석을 위한 api 호출 정보 제공 방법 및 장치
CN116346961B (zh) 金融报文处理方法、装置、电子设备及存储介质
CN112800194A (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