接口报文中需转义字符的处理方法和装置与流程

文档序号:11279266阅读:1091来源:国知局
接口报文中需转义字符的处理方法和装置与流程

本申请涉及网络通信技术领域,尤其涉及一种接口报文中需转义字符的处理方法和装置。



背景技术:

在各种编程语言、数据格式语言、以及一部分通信协议中,常常会将一些特定的字符定义为特殊用途,例如用作字段分隔、字符串或标签的起始和结束等,这些字符失去了原有的意义。例如在html(hypertextmarkuplanguage,超级文本标记语言)中,字符“<”被定义为标签的开始,如果作为页面内容的一段文本中包含“a<b”这样的内容,其中的“<”会被看做是标签的开始,而不是小于号,从而发生错误。因此,html中,“<”是需转义的字符,定义的转义方式是以“&lt”来代替“<”(或者说,将“&lt”定义为“<”的转义字符),“a&ltb”将被html正确的解读为“a<b”。

当两个网络节点进行通信时,将要传递给对方的信息采用约定的报文体格式和通信协议封装为接口报文,并发送给对方(要传递的信息称为接口报文的承载内容);收到接口报文的一方按照相同的通信协议和报文体格式进行解封装,以得到对方要传递的信息。如果接口报文的承载内容中带有约定报文体格式或通信协议的需转义字符,则可能使接收方无法正确对接口报文解封装,而向发送方返回错误消息。

现有技术中,在发送方上保存对该接收方的删除字符列表,对发送给该接收方的信息,发送方将接口报文的承载内容中属于删除字符列表的字符予以删除。当发送方收到该接收方返回的错误消息后,由人工判断是否是由于 接口报文的承载内容中的需转义字符导致错误发生,是则手动将导致错误的需转义字符添加到对该接收方的删除字符列表中,这样,所有曾经导致错误消息的需转义字符将不会出现在后续对该接收方的接口报文承载内容中。这种方式属于事后修补,不仅需要耗费人力,而且两个网络节点在开始通信的初期往往会因需转义字符造成较多的通信错误,并且即使在长期通信后仍然不能确保不会因需转义字符导致通信错误。



技术实现要素:

有鉴于此,本申请提供一种接口报文中需转义字符的处理方法,包括:

根据接口报文的报文体格式和/或协议,生成需转义字符信息,所述需转义字符信息中包括需转义字符集合;

对接口报文的承载内容中属于需转义字符集合的字符,按照预定处理策略进行处理。

本申请还提供了一种接口报文中需转义字符的处理装置,包括:

需转义字符信息单元,用于根据接口报文的报文体格式和/或协议,生成需转义字符信息,所述需转义字符信息中包括需转义字符集合;

需转义字符处理单元,用于对接口报文的承载内容中属于需转义字符集合的字符,按照预定处理策略进行处理。

由以上技术方案可见,本申请的实施例中,根据接口报文的报文体格式和/或协议生成需转义字符集合,以便识别出所有接口报文的承载内容中的需转义字符,并按照预定处理策略进行处理,从而能够避免因需转义字符导致的通信错误,并且节省了人工工作,减轻了网络管理人员的负担。

附图说明

图1是本申请实施例中一种接口报文中需转义字符的处理方法的流程图;

图2是本申请应用示例中一种网关生成接口报文的流程图;

图3是本申请实施例所应用的设备的一种硬件结构图;

图4是本申请实施例中一种接口报文中需转义字符的处理装置的逻辑结构图。

具体实施方式

本申请的实施例提出一种新的接口报文中需转义字符的处理方法,先根据接口报文的报文体格式和/或协议生成需转义字符集合,再利用需转义字符集合识别出接口报文承载内容中的需转义字符并对其进行处理,从而能够在两个系统通信的任何阶段避免因需转义字符导致的错误,不再需要网络管理人员人工辨识通信错误的原因,以解决现有技术中存在的问题。

本申请的实施例中,两个网络节点采用约定的报文体格式和协议来通过网络进行通信。其中,网络节点可以是任何具有计算和存储能力的设备,例如手机、平板电脑、pc(personalcomputer,个人电脑)、笔记本、物理或逻辑服务器等。

一个节点将要传递给对方系统的信息(即接口报文的承载内容)采用约定的报文体格式封装为报文体,再按照约定的协议将报文体封装为接口报文,并发送给对方;收到报文的一方按照约定的协议对接口报文解封装,得到报文体,再按照约定的报文体格式对报文体解封装,以得到接口报文的承载内容。双方约定的报文体格式和协议可以是现有的,也可以是自定义的,本申请的实施例不做限定。例如,报文体格式可以是json(javascriptobjectnotation,java脚本对象表示法)、xml(extensiblemarkuplanguage,可扩展标记语言)等;协议可以是soap(simpleobjectaccessprotocol,简单对象访问协议)、http等。

本申请的实施例中,接口报文中需转义字符的处理方法的流程如图1所示,该方法应用在发送方节点上。

步骤110,根据接口报文的报文体格式和/或协议,生成需转义字符信息,其中包括需转义字符集合。

当两个节点就通信所采用的报文体格式和协议约定完成后,报文体格式 和协议中将会用到的特殊用途字符已经确定,也就是说,在接口报文的承载内容中,哪些字符属于需转义字符、以及每个需转义字符的转义方式就已经确定。因此,发送方节点可以将与接口报文的接收方节点约定的报文体格式和协议中的所有需转义字符,构成需转义字符集合。除需转义字符集合外,发送方节点还可以将每个需转义字符在约定报文体格式和协议中的转义方式也作为需转义字符信息的组成部分。

如果约定的报文体格式或协议没有需转义字符,则发送方节点只需根据约定的协议或报文体格式生成需转义字符信息即可。如果预定的报文体格式和协议均包括需转义字符,发送方节点可以将报文体格式的需转义字符集合和协议的需转义字符集合组合为完整的需转义字符集合;此外根据需转义字符信息所包含的内容,还可以将集合中每个需转义字符在报文体格式或协议中的转义方式也写入需转义字符信息中;如果报文体格式的需转义字符集合和协议的需转义字符集合中有重复的字符,由于生成接口报文时先按照报文体格式封装承载内容,重复字符的转义方式可以采用该字符在报文体格式中的转义方式。

在一种实现方式中,当接口报文的协议无需进行字符转义时,根据接口报文的报文体格式生成需转义字符信息;当接口报文的报文体格式无需进行字符转义时,根据接口报文的协议生成需转义字符信息;否则根据接口报文的报文体格式和协议,生成需转义字符信息。

发送方节点可以预先为每种接口报文(两种接口报文的报文体格式和/或协议不同)生成需转义字符信息并保存,在发送某种接口报文前直接获取与要发送接口报文的报文体格式和/或协议对应的需转义字符信息;也可以在发送接口报文前,根据要发送接口报文的报文体格式和/或协议生成需转义字符信息;本申请的实施例不做限定。

例如,在一种应用场景中,发送方节点与至少两个接收方节点通信,这些接收方节点与发送方节点约定的报文体格式和/或协议不完全相同;也就是说,发送方节点发送的接口报文具有至少两种不同的报文体格式和/或协议。 本例中,可以将每个接口采用的协议的所有需转义字符及其转义方式、每个接口采用的报文体格式的所有需转义字符及其转义方式预先保存在发送方节点可以获取到的配置文件(可以是一个配置文件,也可以是多个;可以保存在发送方节点本地,也可以保存在发送方节点有权限读取的网络位置)中,对需转义字符信息中不包括转义方式的情形,发送方节点可以从配置文件中读取接口报文的报文体格式的所有需转义字符、和/或接口报文的协议的所有需转义字符,生成需转义字符信息;对需转义字符信息中包括转义方式的情形,发送方节点可以从配置文件中读取接口报文的报文体格式的所有需转义字符及其转义方式、和/或接口报文的协议的所有需转义字符及其转义方式,生成需转义字符信息。

步骤120,对接口报文的承载内容中属于需转义字符集合的字符,按照预定处理策略进行处理。

预定处理策略可以根据实际应用场景对承载内容确切程度的要求来确定,例如,可以是将承载内容中属于需转义字符集合的字符删除;再如,也可以是将承载内容中属于需转义字符集合的字符,按照需转义字符信息中该字符的转义方式进行转义,在这种情况下需转义信息中要包括需转义字符集合中字符的转义方式。

在对承载内容中的需转义字符处理完毕后,可以根据接口报文的报文体格式和协议,封装处理后的承载内容,生成接口报文。具体而言,先将处理后承载内容按报文体格式封装为报文体,再按协议将报文体封装为接口报文。

需要说明的是,发送方节点可以为所有的接口报文设置相同的预定处理策略;也可以为具有不同特征的接口报文设置不同的预定处理策略,接口报文的任何特征都可以用来作为区分预定处理策略的特征,例如,接口报文的报文体格式和/或协议、接口报文的接收方节点等,不做限定。

由于报文体格式本身也采用字符来进行格式描述,一些报文体格式中的描述字符可能是一些协议中的特殊用途字符。由于接收方对接口报文先按照议进行解封装得到报文体,再按照报文体格式对报文体解封装得到承载内容, 因此报文体格式中的这些字符往往会造成接收方无法正确按照协议解封装。

对报文体格式和协议的组合中,报文体格式本身使用的字符中包括协议的需转义字符的情形,可以将需转义字符集合中报文体格式的需转义字符集合和协议的需转义字符集合区分开来,例如,可以将报文体格式的需转义字符集合和协议的需转义字符集合分别作为一个文件、或缓存在不同的存储空间;可以为需转义字符集合中的每个字符增加一个描述字段,以说明该字符是属于报文体格式的需转义字符集合,还是属于协议的需转义字符集合;等等。本步骤中,发送方节点先对接口报文承载内容中属于报文体格式的需转义字符集合的字符,按照预定处理策略进行处理;再根据接口报文的报文体格式,对处理后的承载内容进行封装,得到报文体;然后对报文体中属于协议的需转义字符集合的字符,按照预定处理策略进行处理。对处理后的报文体,发送方节点根据接口报文的协议对其进行封装,生成接口报文。

需要说明的是,上述情形中需要采用对属于需转义字符集合的字符按照其转义方式转义的预定处理策略。这样,在接收方收到接口报文后,在按照协议解封装为报文体的过程中,会将报文体格式中的转义字符恢复为原来的需转义字符,从而能够使按照报文体格式的解封装正常进行。

另外,一些应用场景中,接口报文的承载内容中可能包括控制字符,如换行符、回车符、换页符等等,这些控制字符通常对两个网络节点间的信息传递没有帮助,发送方节点可以在对承载内容进行需转义字符的处理前,删除承载内容中的所有控制字符。

可见,本申请的实施例中,先根据接口报文的报文体格式和/或协议生成需转义字符集合,再利用需转义字符集合识别出接口报文承载内容中的需转义字符并对其进行处理,从而能够避免因需转义字符导致的通信错误,并且节省了人工工作,减轻了网络管理人员的负担。

在本申请的一个应用示例中,第三方支付平台的网关用来与多家银行的业务系统进行对接,这些银行的业务系统采用的通信协议和报文体格式往往不尽相同。网关上为每个银行的业务系统设置了一个逻辑接口,来进行与对 应的银行业务系统的通信,发送给某个银行业务系统的接口报文将以其对应的接口为出接口,这样,接口报文采用的报文体格式和协议可以由其出接口确定。网关上为每个接口分别设置了需转义字符的预定处理策略。

网管人员在网关上维护一个配置文件,其中保存有网关上所有接口的报文体格式的所有需转义字符及其转义方式、所有接口的协议的所有需转义字符及其转义方式。

在用户通过第三方支付系统进行支付时,用户通过其终端向第三方支付平台发送支付申请,其中包括本次支付所选择的银行、支付信息(如卡号、姓名、账单地址等)等。网关在收到用户所选择的银行和支付信息后,网关将支付信息作为接口报文的承载内容,生成所选择银行的接口报文,并通过到该银行的逻辑接口发送给该银行,其流程如图2所示。

步骤210,在接口报文的承载内容中,有些字段(如账单地址字段)由用户收入,可能会带有控制字符。网关查找承载内容中的控制字符,并删除所有找到的控制字符。

步骤220,网关获取本次支付所选择银行对应的接口的报文体格式和协议,作为接口报文的报文体格式和协议;网关获取为该接口设置的预定处理策略。

步骤230,网关判断接口报文的协议是否需要进行字符转义,如果需要,执行步骤240,否则转步骤250。

步骤240,网关读取配置文件中接口报文的协议的所有需转义字符,添加到需转义字符集合中,并将其中每个需转义字符的转义方式添加到需转义字符信息中。

步骤250,网关判断接口报文的报文体格式是否需要进行字符转义,如果需要,执行步骤260,否则转步骤270。

步骤260,网关读取配置文件中接口报文的报文体格式的所有需转义字符,添加到需转义字符集合中,并将其中每个需转义字符的转义方式添加到需转义字符信息中。

步骤270,网关将承载内容中属于需转义字符集合的字符,按照该接口的预定处理策略进行处理。例如,预定处理策略为删除时,将属于需转义字符集合的字符删除;预定处理策略为转义时,按照属于需转义字符集合的字符的转义方式对其进行转义。

步骤280,网关将处理后的承载内容,按照接口报文的报文体格式和协议进行封装,生成接口报文。

与上述流程实现对应,本申请的实施例还提供了一种应用在网络节点上的接口报文中需转义字符的处理装置,该装置可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为逻辑意义上的装置,是通过网络节点所在设备的cpu(centralprocessunit,中央处理器)将对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,除了图3所示的cpu、内存以及非易失性存储器之外,接口报文中需转义字符的处理装置所在的设备通常还包括用于进行无线信号收发的芯片等其他硬件,和/或用于实现网络通信功能的板卡等其他硬件。

图4所示为本申请实施例提供的一种接口报文中需转义字符的处理装置,包括需转义字符信息单元和需转义字符处理单元,其中:需转义字符信息单元用于根据接口报文的报文体格式和/或协议,生成需转义字符信息,所述需转义字符信息中包括需转义字符集合;需转义字符处理单元用于对接口报文的承载内容中属于需转义字符集合的字符,按照预定处理策略进行处理。

可选的,所述需转义字符信息单元具体用于:当接口报文的协议无需进行字符转义时,根据接口报文的报文体格式生成需转义字符信息;当接口报文的报文体格式无需进行字符转义时,根据接口报文的协议生成需转义字符信息;否则根据接口报文的报文体格式和协议,生成需转义字符信息。

可选的,所述方法应用在网络节点上,所述网络节点发送的接口报文具有至少两种不同的报文体格式和/或协议;接口报文采用的每种协议的所有需转义字符及其转义方式、和每种报文体格式的所有需转义字符及其转义方式保存在网络节点可获取的配置文件中;所述需转义字符信息单元具体用于: 读取所述配置文件中接口报文的报文体格式的所有需转义字符、和/或接口报文的协议的所有需转义字符,生成需转义字符信息;或,读取所述配置文件中接口报文的报文体格式的所有需转义字符及其转义方式、和/或接口报文的协议的所有需转义字符及其转义方式,生成需转义字符信息。

可选的,所述需转义字符信息还包括:需转义字符集合中每个字符的转义方式;所述预定处理策略包括:按照所述属于需转义字符集合的字符的转义方式进行转义。

可选的,所述预定处理策略包括:删除所述属于需转义字符集合的字符。

可选的,所述装置还包括接口报文封装单元,用于根据接口报文的报文体格式和协议,对处理后的承载内容进行封装,生成接口报文。

可选的,所述需转义字符集合包括:报文体格式的需转义字符集合和协议的需转义字符集合;所述需转义字符处理单元包括报文体格式处理模块、报文体封装模块和协议处理模块,其中:报文体格式处理模块用于对接口报文承载内容中属于报文体格式的需转义字符集合的字符,按照预定处理策略进行处理;报文体封装模块用于根据接口报文的报文体格式,对处理后的承载内容进行封装,得到报文体;协议处理模块用于对报文体中属于协议的需转义字符集合的字符,按照预定处理策略进行处理。

可选的,所述装置还包括协议封装单元,用于根据接口报文的协议,对处理后的报文体进行封装,生成接口报文。

可选的,所述接口报文承载内容中还包括:控制字符;所述装置还包括控制字符删除单元,用于删除接口报文承载内容中的所有控制字符。

以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。

在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。

内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器 (ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram)。内存是计算机可读介质的示例。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。

本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1