报文解析方法、装置、电子设备及介质制造方法及图纸

技术编号:34174688 阅读:10 留言:0更新日期:2022-07-17 11:37
本公开提供了一种报文解析方法,可以应用于互联网技术领域。该报文解析方法包括:根据multipart类型的报文的第一头部信息中的第一分割符,将multipart类型的报文的第一实体信息分割为至少两段子报文;确定至少两段子报文分别对应的键名和键值;根据键名和键值生成multipart类型的报文的JSON对象。本公开还提供了一种报文解析装置、设备、存储介质和程序产品,可用于金融领域或其他领域的multipart类型报文的解析。类型报文的解析。类型报文的解析。

【技术实现步骤摘要】
报文解析方法、装置、电子设备及介质


[0001]本公开涉及互联网
,具体涉及HTTP报文,更具体地涉及一种报文解析方法、装置、设备及介质,可用于金融领域或其他领域的multipart类型报文的解析。

技术介绍

[0002]互联网上Web都是建立在HTTP协议上通信的,HTTP协议用于客户端和服务器之间进行通信,协议规定请求从客服端发出,最后服务器响应该请求并返回。用于HTTP协议交互的信息被称为HTTP报文,请求端(客户端)的HTTP报文叫做请求报文,响应端(服务器端)的叫做响应报文,HTTP报文由报文首部、空行以及报文主体组成。HTTP报文中采用MIME,允许处理文本、图片、视频等多个不同类型的数据,利用MIME可以描述标记数据类型,而在MIME扩展中会使用一种称为多部分对象集合(multipart)的方法来容纳多份不同类型的数据,主要有multipart/form

data(可用于HTML表单从浏览器发送信息给服务器)和multipart/byteranges(可用于把部分的响应报文发送回浏览器,MIME用于指出这个文件由若干部分组成,每一个都有其请求范围,主要用于慢网速下的大数据分块传输)。
[0003]遗憾的是目前原生javascript的XMLHttpRequest和一些主流的ajax类库的缺点是只能解析响应MIME类型为application/json类型的报文而无法解析multipart类型的报文,限制了multipart类型的报文的应用。

技术实现思路

>[0004]鉴于上述问题,本公开提供了一种报文解析方法、装置、设备、介质和程序产品。
[0005]根据本公开的第一个方面,提供了一种报文解析方法,包括:根据multipart类型的报文的第一头部信息中的第一分割符,将multipart类型的报文的第一实体信息分割为至少两段子报文;确定至少两段子报文分别对应的键名和键值;根据键名和键值生成multipart类型的报文的JSON对象。
[0006]根据本公开的实施例,确定至少两段子报文分别对应的键名和键值包括:根据子报文的第二头部信息确定键名,根据子报文的第二实体信息确定键值。
[0007]根据本公开的实施例,根据multipart类型的报文的第一头部信息中的第一分割符,将multipart类型的报文的第一实体信息分割为至少两段子报文包括:根据第一分割符构建第一正则表达式,其中,第一分隔符至少包括boundary字段;根据第一正则表达式将第一实体信息分割为至少两段子报文。
[0008]根据本公开的实施例,根据第一正则表达式将第一实体信息分割为至少两段子报文包括:根据第一正则表达式获得第一实体信息的至少两个占位符;根据至少两个占位符将报文分割成第一数组,第一数组包含至少两段子报文。
[0009]根据本公开的实施例,根据子报文的第二头部信息确定键名,根据子报文的第二实体信息确定键值包括:根据子报文中的第二分隔符将子报文分割成第二头部信息和第二实体信息;根据第二头部信息获得第二正则表达式;利用第二正则表达式处理第二头部信
息,得到键名;将第二实体信息利用分行分割符分隔为第二数组,第二数组的第一位为键值。
[0010]根据本公开的实施例,根据键名和键值生成multipart类型的报文的JSON对象包括:创建空对象;在空对象中记录至少两段子报文对应的键名,并将对应的至少两段子报文对应的键值分别赋值给至少两段子报文对应的键名,生成multipart类型的报文的JSON对象。
[0011]根据本公开的实施例,根据第二头部信息获得第二正则表达式包括:检测multipart类型的报文的种类;若multipart类型的报文为multipart/form

data类型,则根据第二头部信息中的name字段构建第二正则表达式;若multipart类型的报文为multipart/byteranges类型,则根据第二头部信息中的bytes字段构建第二正则表达式。
[0012]根据本公开的实施例,报文解析方法还包括:接收HTTP请求报文;根据HTTP请求报文的头部信息筛选出multipart类型的报文;检测报文的第一实体信息是否为字符类型,若实体信息不是字符类型,则将第一实体信息转换为字符类型。
[0013]本公开的第二方面提供了一种报文解析装置,包括:分割模块,用于根据multipart类型的报文的第一头部信息中的第一分割符,将multipart类型的报文的第一实体信息分割为至少两段子报文;键名键值模块,用于确定至少两段子报文分别对应的键名和键值;以及对象模块,用于根据键名和键值生成multipart类型的报文的JSON对象。
[0014]本公开的第三方面提供了一种电子设备,包括:一个或多个处理器;存储器,用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得一个或多个处理器执行上述报文解析方法。
[0015]本公开的第四方面还提供了一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器执行上述报文解析方法。
[0016]本公开的第五方面还提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述报文解析方法。
附图说明
[0017]通过以下参照附图对本公开实施例的描述,本公开的上述内容以及其他目的、特征和优点将更为清楚,在附图中:
[0018]图1示意性示出了根据本公开实施例的报文解析方法、装置、设备、介质和程序产品的应用场景图;
[0019]图2示意性示出了根据本公开实施例的报文解析方法的流程图;
[0020]图3示意性示出了根据本公开实施例的分割报文的方法的流程图;
[0021]图4示意性示出了根据本公开实施例的创建第一数组的方法的流程图;
[0022]图5示意性示出了根据本公开实施例的键名和键值的确定方法的流程图;
[0023]图6示意性示出了根据本公开实施例的报文预处理方法的流程图;
[0024]图7示意性示出了根据本公开实施例的报文解析装置的结构框图;以及
[0025]图8示意性示出了根据本公开实施例的适于实现报文解析方法的电子设备的方框图。
具体实施方式
[0026]以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
[0027]在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
...

【技术保护点】

【技术特征摘要】
1.一种报文解析方法,包括:根据multipart类型的报文的第一头部信息中的第一分割符,将所述multipart类型的报文的第一实体信息分割为至少两段子报文;确定所述至少两段子报文分别对应的键名和键值;根据所述键名和所述键值生成所述multipart类型的报文的JSON对象。2.根据权利要求1所述的方法,其中,所述确定所述至少两段子报文分别对应的键名和键值包括:根据所述子报文的第二头部信息确定所述键名,根据所述子报文的第二实体信息确定所述键值。3.根据权利要求1所述的方法,其中,所述根据multipart类型的报文的第一头部信息中的第一分割符,将所述multipart类型的报文的第一实体信息分割为至少两段子报文包括:根据所述第一分割符构建第一正则表达式,其中,所述第一分隔符至少包括boundary字段;根据第一正则表达式将所述第一实体信息分割为至少两段子报文。4.根据权利要求3所述的方法,其中,所述根据第一正则表达式将所述第一实体信息分割为至少两段子报文包括:根据所述第一正则表达式生成所述第一实体信息的至少两个占位符;根据所述至少两个占位符将所述报文分割成第一数组,所述第一数组包含至少两段子报文。5.根据权利要求2所述的方法,其中,所述根据所述子报文的第二头部信息确定所述键名,根据所述子报文的第二实体信息确定所述键值包括:根据所述子报文中的第二分隔符将所述子报文分割成所述第二头部信息和第二实体信息;根据所述第二头部信息获得第二正则表达式;利用所述第二正则表达式处理所述第二头部信息,得到所述键名;将所述第二实体信息利用分行分割符分隔为第二数组,所述第二数组的第一位为所述键值。6.根据权利要求1所述的方法,其中,所述根据所述键名和所述键值生成所述multipart类型的报文的JSON对象包括:创建空对象;在所述空对象中记录所述至少两段子报文对应的键名,并将对应的所述至少两...

【专利技术属性】
技术研发人员:童颖
申请(专利权)人:中国工商银行股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1