CN115589426A - 一种网络服务调用方法及系统 - Google Patents

一种网络服务调用方法及系统 Download PDF

Info

Publication number
CN115589426A
CN115589426A CN202211097622.1A CN202211097622A CN115589426A CN 115589426 A CN115589426 A CN 115589426A CN 202211097622 A CN202211097622 A CN 202211097622A CN 115589426 A CN115589426 A CN 115589426A
Authority
CN
China
Prior art keywords
service
proxied
proxy
message content
http
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.)
Pending
Application number
CN202211097622.1A
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.)
CISDI Chongqing Information Technology Co Ltd
Original Assignee
CISDI Chongqing Information Technology 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 CISDI Chongqing Information Technology Co Ltd filed Critical CISDI Chongqing Information Technology Co Ltd
Priority to CN202211097622.1A priority Critical patent/CN115589426A/zh
Publication of CN115589426A publication Critical patent/CN115589426A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/141Setup of application sessions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer And Data Communications (AREA)

Abstract

本申请提供一种网络服务调用方法及系统,首先接收服务调用方向代理服务发起的HTTP请求,并基于HTTP请求建立代理服务与服务调用方的TCP连接;以及,根据预先配置的被代理服务的网络地址,建立代理服务与被代理服务的TCP连接;然后对HTTP请求进行报文解析,并按照预先确定的配置内容,对解析后的报文内容进行修改;再通过代理服务将修改后的报文内容发送至被代理服务,并接收被代理服务反馈的HTTP答复报文;以及,通过代理服务将HTTP答复报文反馈至服务调用方,以使服务调用方调用被代理服务。本申请通过修改HTTP协议报文,可以调用被代理服务,还可以实现零代码修改,以满足被调用需求,并可以注册至微服务架构的服务注册发现中心,满足统一调用需求。

Description

一种网络服务调用方法及系统
技术领域
本申请涉及计算机技术领域,特别是涉及一种网络服务调用方法及系统。
背景技术
在网络服务日益流行的现在,特别是微服务架构逐渐流行,使得网络安全要求也越发提高。但是,将已有的单体应用系统加入微服务架构时,需要对单体应用系统进行注册服务、权限认证等代码调整;同时,对于一些第三方网络服务的简单调用,为了避免前端调用出现跨域请求,也需要在后端代码进行请求转发并加入权限认证处理;此外,对于一些Restful风格的网络接口,因为网络安全要求会屏蔽GET、POST以外的请求方法,需要对代码进行大量调整。相当于在当前的网络服务开发场景中,微服务架构通过API(ApplicationProgram Interface,应用程序界面,简称API)网关统一对外统一提供API接口由前端页面调用。但是却存在以下问题:
1、已建成的单体应用系统如果要将自身加入微服务体系,需要针对发现注册及权限控制等功能进行大量功能改造。
2、第三方服务商提供的接口调用,为了进行调用权限认证及避免前端页面直接调用出现的跨域请求都要在项目本身增加相应的转发处理模块。
3、因为网络安全要求,对于POST、GET以外的HTTP(Hyper Text TransferProtocol,超文本传输协议,简称HTTP)请求方法会被禁用或者没有良好支持,包含常用的API网关对于POST、GET以外请求方法不会给予良好支撑,对于Restful风格的API接口改造会比较花费时间及人力成本。
发明内容
鉴于以上所述现有技术的缺点,本申请的目的在于提供一种网络服务调用方法及系统,用于解决现有技术中存在的问题。
为实现上述目的及其他相关目的,本申请提供一种网络服务调用方法,包括以下步骤:
接收服务调用方向代理服务发起的HTTP请求,并基于所述HTTP请求建立所述代理服务与所述服务调用方的TCP(Transmission Control Protocol,传输控制协议,简称TCP)连接;以及,
根据预先配置的被代理服务的网络地址,建立所述代理服务与所述被代理服务的TCP连接;
对所述HTTP请求进行报文解析,并按照预先确定的配置内容,对解析后的报文内容进行修改;
通过所述代理服务将修改后的报文内容发送至所述被代理服务,并接收所述被代理服务反馈的HTTP答复报文;以及,通过所述代理服务将所述HTTP答复报文反馈至所述服务调用方,以使所述服务调用方调用所述被代理服务。
可选地,通过所述代理服务将所述HTTP答复报文反馈至所述服务调用方后,所述方法还包括:
断开所述代理服务与所述服务调用方的TCP连接,以及,
断开所述代理服务与所述被代理服务的TCP连接。
可选地,在接收服务调用方向代理服务发起的HTTP请求前,所述方法还包括:
获取预先配置的代理服务端口;
启动所述代理服务,并基于所述代理服务端口监听所述代理服务,等待所述服务调用方向所述代理服务发起HTTP请求。
可选地,对解析后的报文内容进行修改的过程包括:
将解析后的报文内容记为原始报文内容;
向所述原始报文内容中添加权限认证的HTTP Head报文,得到修改后的报文内容;或者,按照预设规则将所述原始报文内容中的部分字段进行替换或转化,得到修改后的报文内容。
可选地,按照预设规则将所述原始报文内容中的部分字段进行替换或转化,得到修改后的报文内容的过程包括:
将所述HTTP请求中URL的第一级路径作为请求方法字段进行报文修改,得到所述预设规则;
按照所述预设规则将所述原始报文内容中的GET字段替换或转化为PUT字段、DELETE字段;和/或,按照所述预设规则将所述原始报文内容中的POST字段替换或转化为PUT字段、DELETE字段。
可选地,通过所述代理服务将修改后的报文内容发送至所述被代理服务时,所述方法还包括:
分段接收修改后的报文内容,并通过所述代理服务将修改后的报文内容分段发送至所述被代理服务;和/或,
分段接收修改后的报文内容,并通过所述代理服务将所述HTTP答复报文分段反馈至所述服务调用方。
可选地,在建立所述代理服务与所述被代理服务的TCP连接前,所述方法还包括:
将所述被代理服务注册至微服务架构中的注册发现中心,并设定所述注册发现中心的网络地址或者域名、指定对应端口,以及设定待注册服务的服务名称和服务信息;和/或,
对所述被代理服务进行安全套接字形式报文传输,将所述被代理服务匹配为HTTP提供网络服务;和/或,
通过字符串数组方式对所述被代理服务进行设定,以使所述被代理服务使用HEADER中设定授权TOKEN信息或者HOST信息。
可选地,所述方法还包括:将所述代理服务接收到的HTTP请求由第一版本调整为第二版本,其中,所述第一版本高于第二版本。
本申请还提供一种网络服务调用系统,包括有:
第一网络连接模块,用于接收服务调用方向代理服务发起的HTTP请求,并基于所述HTTP请求建立所述代理服务与所述服务调用方的TCP连接;
第二网络连接模块,用于根据预先配置的被代理服务的网络地址,建立所述代理服务与所述被代理服务的TCP连接;
报文修改模块,用于对所述HTTP请求进行报文解析,并按照预先确定的配置内容,对解析后的报文内容进行修改;
网络服务调用模块,用于通过所述代理服务将修改后的报文内容发送至所述被代理服务,并接收所述被代理服务反馈的HTTP答复报文;以及,通过所述代理服务将所述HTTP答复报文反馈至所述服务调用方,以使所述服务调用方调用所述被代理服务。
可选地,通过所述代理服务将所述HTTP答复报文反馈至所述服务调用方后,所述网络服务调用模块还包括:
断开所述代理服务与所述服务调用方的TCP连接,以及,
断开所述代理服务与所述被代理服务的TCP连接。
如上所述,本申请提供一种网络服务调用方法及系统,具有以下有益效果:本申请首先接收服务调用方向代理服务发起的HTTP请求,并基于HTTP请求建立代理服务与服务调用方的TCP连接;以及,根据预先配置的被代理服务的网络地址,建立代理服务与被代理服务的TCP连接;然后对HTTP请求进行报文解析,并按照预先确定的配置内容,对解析后的报文内容进行修改;再通过代理服务将修改后的报文内容发送至被代理服务,并接收被代理服务反馈的HTTP答复报文;以及,通过代理服务将HTTP答复报文反馈至服务调用方,以使服务调用方调用被代理服务。由此可知,本申请通过设定代理对象相关配置,可以代理被代理服务的网络服务调用;也可以设定服务注册发现中心相关注册参数及心跳参数,将代理服务注册至服务注册发现中心便于通过API网关统一调用。在转发过程中通过TCP连接对HTTP协议报文按照配置进行转化修改,保障相关网服务代理对象无须做出代码层面的修改即可被调用。本申请可以用于代理已有单体系统应用网络服务、第三方网络服务、Restful风格网络服务,通过配置修改HTTP协议报文,使其可以零代码修改满足被调用需求,并可以注册至微服务架构的服务注册发现中心,满足统一调用需求。
附图说明
图1为本申请中一实施例提供的网络服务调用方法的流程示意图;
图2为本申请中另一实施例提供的网路服务调用方法的流程示意图;
图3为本申请中一实施例提供的网络服务调用系统的硬件结构示意图。
具体实施方式
以下通过特定的具体实例说明本申请的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本申请的其他优点与功效。本申请还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本申请的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
需要说明的是,本实施例中所提供的图示仅以示意方式说明本申请的基本构想,遂图式中仅显示与本申请中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
请参阅图1所示,本实施例提供一种网络服务调用方法,包括以下步骤:
S110,接收服务调用方向代理服务发起的HTTP请求,并基于所述HTTP请求建立所述代理服务与所述服务调用方的TCP连接;以及,根据预先配置的被代理服务的网络地址,建立所述代理服务与所述被代理服务的TCP连接;
S120,对所述HTTP请求进行报文解析,并按照预先确定的配置内容,对解析后的报文内容进行修改;
S130,通过所述代理服务将修改后的报文内容发送至所述被代理服务,并接收所述被代理服务反馈的HTTP答复报文;以及,通过所述代理服务将所述HTTP答复报文反馈至所述服务调用方,以使所述服务调用方调用所述被代理服务。
由此可知,本实施例通过设定代理对象相关配置,可以代理被代理服务的网络服务调用;也可以设定服务注册发现中心相关注册参数及心跳参数,将代理服务注册至服务注册发现中心便于通过API网关统一调用。在转发过程中通过TCP连接对HTTP协议报文按照配置进行转化修改,保障相关网服务代理对象无须做出代码层面的修改即可被调用。本实施例可以用于代理已有单体系统应用网络服务、第三方网络服务、Restful风格网络服务,通过配置修改HTTP协议报文,使其可以零代码修改满足被调用需求,并可以注册至微服务架构的服务注册发现中心,满足统一调用需求。
在一示例性实施例中,通过所述代理服务将所述HTTP答复报文反馈至所述服务调用方后,所述方法还包括:断开所述代理服务与所述服务调用方的TCP连接,以及,断开所述代理服务与所述被代理服务的TCP连接。由此可知,本实施例在报文发送成功后,可以关闭之前建立的两条TCP连接,从而完成一次代理服务。
在一示例性实施例中,在接收服务调用方向代理服务发起的HTTP请求前,所述方法还包括:获取预先配置的代理服务端口;启动所述代理服务,并基于所述代理服务端口监听所述代理服务,等待所述服务调用方向所述代理服务发起HTTP请求。由此可知,本实施例通过启动代理服务,然后监听预先设定的代理服务端口,等待服务调用方向代理服务发起HTTP请求时,建立代理服务与服务调用方的TCP连接。
在一示例性实施例中,对解析后的报文内容进行修改的过程包括:将解析后的报文内容记为原始报文内容;向所述原始报文内容中添加权限认证的HTTP Head报文,得到修改后的报文内容;或者,按照预设规则将所述原始报文内容中的部分字段进行替换或转化,得到修改后的报文内容。具体地,按照预设规则将所述原始报文内容中的部分字段进行替换或转化,得到修改后的报文内容的过程包括:将所述HTTP请求中URL的第一级路径作为请求方法字段进行报文修改,得到所述预设规则;按照所述预设规则将所述原始报文内容中的GET字段替换或转化为PUT字段、DELETE字段;和/或,按照所述预设规则将所述原始报文内容中的POST字段替换或转化为PUT字段、DELETE字段。由此可知,在本实施例中,代理服务可以对于获取的HTTP请求进行报文解析,然后依据预先确定的配置内容,对HTTP报文内容进行修改,然后将修改后的报文通过被代理服务的TCP连接发送至被代理服务。对HTTP报文内容进行修改过程可以是:例如添加权限认证的HTTP Head报文,或者依据规则将HTTP报文中的METHOD字段按照设定规则进行替换,将GET、POST字段转化为对应的PUT、DELETE等字段,即将原始报文内容中的GET字段替换或转化为PUT字段、DELETE字段;和/或,按照将原始报文内容中的POST字段替换或转化为PUT字段、DELETE字段。
在一示例性实施例中,通过所述代理服务将修改后的报文内容发送至所述被代理服务时,所述方法还包括:分段接收修改后的报文内容,并通过所述代理服务将修改后的报文内容分段发送至所述被代理服务;和/或,分段接收修改后的报文内容,并通过所述代理服务将所述HTTP答复报文分段反馈至所述服务调用方。由此可知,本实施例在接收及发送报文时,可以采用分段进行,使每次读取固定长度的报文发送至接收对象TCP连接,防止因为报文内容过大时,读取完整报文再进行发送对代理服务的性能有较大影响。
在一示例性实施例中,在建立所述代理服务与所述被代理服务的TCP连接前,所述方法还包括:将所述被代理服务注册至微服务架构中的注册发现中心,并设定所述注册发现中心的网络地址或者域名、指定对应端口,以及设定待注册服务的服务名称和服务信息;和/或,对所述被代理服务进行安全套接字形式报文传输,将所述被代理服务匹配为HTTP提供网络服务;和/或,通过字符串数组方式对所述被代理服务进行设定,以使所述被代理服务使用HEADER中设定授权TOKEN信息或者HOST信息。由此可知,本实施例在建立代理服务与被代理服务的TCP连接前,可以针对需要被代理的单体系统应用、第三方网络服务等被代理服务进行配置。具体地,作为一示例,例如可以配置被代理服务的网络IP或者域名,指定代理服务的端口。作为另一示例,如果需要将被代理服务注册至微服务架构中的注册发现中心,需要设定注册发现中心网络IP或者域名,指定对应端口,设定注册服务需要的服务名称、服务信息等配置信息。作为又一示例,如果被代理服务使用HTTPS提供网络服务,需要设定使用SSL连接。作为一示例,如果被代理服务需要使用HEADER中设定授权TOKEN信息或者HOST等信息,通过字符串数组的方式在配置文件中进行设定。作为另一示例,如果被代理服务是Restful风格网络接口,需要对进行请求进行GET、POST请求以外的类型转化,需要设定转换开关配置。
在一示例性实施例中,在代理服务收到服务调用方发起的HTTP请求后,本实施例还可以将所述代理服务接收到的HTTP请求由第一版本调整为第二版本,其中,所述第一版本高于第二版本。作为示例,例如本实施例可以将服务调用方的HTTP请求由1.1版本修改为1.0版本,避免被代理服务一直保持TCP连接,从而产生系统资源浪费。
如图2所示,在另一示例性实施例中,本申请还提供一种网络服务调用方法,包括以下步骤:
步骤1:针对需要被代理的单体系统应用、第三方网络服务进行代理服务配置。
具体地,采用配置文件存储代理服务自身IP,服务端口相关配置项。对于被代理服务常见的HTTP请求HEADER中放入TOKEN鉴权,第三方网络服务对HEADER定制化要求,对于Restful风格网络服务中非GET、POST请求使用URL第一级目录作为方法名进行转换均可以在配置文件设定相关内容。对于被代理服务为HTTPS服务,使用SSL套接字方式连接在配置文件中进行设置。对于是否将需要将被代对象注册至微服务架构的服务注册发现中心,需要将对应服务注册发现中心的地址、被代理服务的服务名及相关注册信息在配置文件中进行配置。
步骤2:启动代理及注册服务。
具体地,依照步骤1中设定的服务端口启动服务监听端口,等待调用方发送HTTP请求建立TCP连接。依照步骤1中设定是否需要注册至服务注册发现中心,将相关注册信息以HTTP请求方式返送至服务注册发现中心,注册成功后定时发送心跳信息保证注册后的服务可以被正常调用。
步骤3:获取调用方建立TCP连接,同时建立对被代理服务建立TCP连接。
具体地,获取调用方HTTP请求建立的TCP连接后,采用多线程形式,每个连接由一个线程处理。在对应线程中依据步骤1设定的配置内容建立被代理服务的TCP连接,按照配置内容要求确定是否采用SSL(Secure Socket Layer,安全套接层,简称SSL)套接字方式建立连接。即可以通过设置设定在建立相关TCP连接中,使用SSL进行安全套接字形式报文传输,匹配被代理网络服务为HTTPS提供服务,保证传输过程中报文的安全传输。
步骤4:解析接收的HTTP协议报文,按照设定内容进行转换,并向代理对象转发。
具体地,为避免字符编码转码过程中出现错误或者不可逆的转换,对HTTP协议报文直接采用字节方式进行解析。将HTTP协议报文中的HTTP1.1方式转换为HTTP1.0,避免被代理服务保留使用过的连接产生不必要的系统资源浪费。将HTTP协议报文进行切分,对于配置中需要添加HEADER内容,例如鉴权TOKEN认证,定制化HEADER内容将转化为8位字节数组添加入原报文字节数组。如果配置文件中设定了对Restful风格服务进行转换,将原报文中URL第一级目录提取[\]字符后作为HTTP协议的方法名替换原有方法名,放入转发报文字节数组,转发报文中的URL去掉被提取的第一级目录确保调用正确。使用定长数组循环读取报文内容直至报文内容读取完毕,每次读取后进行对应解析转化后将对应字节数组发送至被代理服务TCP连接。
步骤5:接收被代理服务返回报文并通过与调用方的TCP连接发送至调用方。
具体地,通过与被代理服务建立的TCP连接读取返回的报文内容,使用定长数组循环读取报文内容直至报文内容读取完毕,每次读取后将对应字节数组发送至调用方TCP连接。报文内容读取发送完毕后,关闭对应两条的TCP连接,对应线程关闭,完成代理服务。
综上所述,本申请提供一种网络服务调用方法,首先接收服务调用方向代理服务发起的HTTP请求,并基于HTTP请求建立代理服务与服务调用方的TCP连接;以及,根据预先配置的被代理服务的网络地址,建立代理服务与被代理服务的TCP连接;然后对HTTP请求进行报文解析,并按照预先确定的配置内容,对解析后的报文内容进行修改;再通过代理服务将修改后的报文内容发送至被代理服务,并接收被代理服务反馈的HTTP答复报文;以及,通过代理服务将HTTP答复报文反馈至服务调用方,以使服务调用方调用被代理服务。由此可知,本方法通过设定代理对象相关配置,可以代理被代理服务的网络服务调用;也可以设定服务注册发现中心相关注册参数及心跳参数,将代理服务注册至服务注册发现中心便于通过API网关统一调用。在转发过程中通过TCP连接对HTTP协议报文按照配置进行转化修改,保障相关网服务代理对象无须做出代码层面的修改即可被调用。本方法可以用于代理已有单体系统应用网络服务、第三方网络服务、Restful风格网络服务,通过配置修改HTTP协议报文,使其可以零代码修改满足被调用需求,并可以注册至微服务架构的服务注册发现中心,满足统一调用需求。
如图3所示,本申请还提供一种网络服务调用系统,包括有:
第一网络连接模块310,用于接收服务调用方向代理服务发起的HTTP请求,并基于所述HTTP请求建立所述代理服务与所述服务调用方的TCP连接;
第二网络连接模块320,用于根据预先配置的被代理服务的网络地址,建立所述代理服务与所述被代理服务的TCP连接;
报文修改模块330,用于对所述HTTP请求进行报文解析,并按照预先确定的配置内容,对解析后的报文内容进行修改;
网络服务调用模块340,用于通过所述代理服务将修改后的报文内容发送至所述被代理服务,并接收所述被代理服务反馈的HTTP答复报文;以及,通过所述代理服务将所述HTTP答复报文反馈至所述服务调用方,以使所述服务调用方调用所述被代理服务。
由此可知,本实施例通过设定代理对象相关配置,可以代理被代理服务的网络服务调用;也可以设定服务注册发现中心相关注册参数及心跳参数,将代理服务注册至服务注册发现中心便于通过API网关统一调用。在转发过程中通过TCP连接对HTTP协议报文按照配置进行转化修改,保障相关网服务代理对象无须做出代码层面的修改即可被调用。本实施例可以用于代理已有单体系统应用网络服务、第三方网络服务、Restful风格网络服务,通过配置修改HTTP协议报文,使其可以零代码修改满足被调用需求,并可以注册至微服务架构的服务注册发现中心,满足统一调用需求。
在一示例性实施例中,通过所述代理服务将所述HTTP答复报文反馈至所述服务调用方后,所述网络服务调用模块还包括:断开所述代理服务与所述服务调用方的TCP连接,以及,断开所述代理服务与所述被代理服务的TCP连接。由此可知,本实施例在报文发送成功后,可以关闭之前建立的两条TCP连接,从而完成一次代理服务。
在一示例性实施例中,在接收服务调用方向代理服务发起的HTTP请求前,所述系统还包括:获取预先配置的代理服务端口;启动所述代理服务,并基于所述代理服务端口监听所述代理服务,等待所述服务调用方向所述代理服务发起HTTP请求。由此可知,本实施例通过启动代理服务,然后监听预先设定的代理服务端口,等待服务调用方向代理服务发起HTTP请求时,建立代理服务与服务调用方的TCP连接。
在一示例性实施例中,对解析后的报文内容进行修改的过程包括:将解析后的报文内容记为原始报文内容;向所述原始报文内容中添加权限认证的HTTP Head报文,得到修改后的报文内容;或者,按照预设规则将所述原始报文内容中的部分字段进行替换或转化,得到修改后的报文内容。具体地,按照预设规则将所述原始报文内容中的部分字段进行替换或转化,得到修改后的报文内容的过程包括:将所述HTTP请求中URL的第一级路径作为请求系统字段进行报文修改,得到所述预设规则;按照所述预设规则将所述原始报文内容中的GET字段替换或转化为PUT字段、DELETE字段;和/或,按照所述预设规则将所述原始报文内容中的POST字段替换或转化为PUT字段、DELETE字段。由此可知,在本实施例中,代理服务可以对于获取的HTTP请求进行报文解析,然后依据预先确定的配置内容,对HTTP报文内容进行修改,然后将修改后的报文通过被代理服务的TCP连接发送至被代理服务。对HTTP报文内容进行修改过程可以是:例如添加权限认证的HTTP Head报文,或者依据规则将HTTP报文中的METHOD字段按照设定规则进行替换,将GET、POST字段转化为对应的PUT、DELETE等字段,即将原始报文内容中的GET字段替换或转化为PUT字段、DELETE字段;和/或,按照将原始报文内容中的POST字段替换或转化为PUT字段、DELETE字段。
在一示例性实施例中,通过所述代理服务将修改后的报文内容发送至所述被代理服务时,所述系统还包括:分段接收修改后的报文内容,并通过所述代理服务将修改后的报文内容分段发送至所述被代理服务;和/或,分段接收修改后的报文内容,并通过所述代理服务将所述HTTP答复报文分段反馈至所述服务调用方。由此可知,本实施例在接收及发送报文时,可以采用分段进行,使每次读取固定长度的报文发送至接收对象TCP连接,防止因为报文内容过大时,读取完整报文再进行发送对代理服务的性能有较大影响。
在一示例性实施例中,在建立所述代理服务与所述被代理服务的TCP连接前,所述系统还包括:将所述被代理服务注册至微服务架构中的注册发现中心,并设定所述注册发现中心的网络地址或者域名、指定对应端口,以及设定待注册服务的服务名称和服务信息;和/或,对所述被代理服务进行安全套接字形式报文传输,将所述被代理服务匹配为HTTP提供网络服务;和/或,通过字符串数组方式对所述被代理服务进行设定,以使所述被代理服务使用HEADER中设定授权TOKEN信息或者HOST信息。由此可知,本实施例在建立代理服务与被代理服务的TCP连接前,可以针对需要被代理的单体系统应用、第三方网络服务等被代理服务进行配置。具体地,作为一示例,例如可以配置被代理服务的网络IP或者域名,指定代理服务的端口。作为另一示例,如果需要将被代理服务注册至微服务架构中的注册发现中心,需要设定注册发现中心网络IP或者域名,指定对应端口,设定注册服务需要的服务名称、服务信息等配置信息。作为又一示例,如果被代理服务使用HTTPS提供网络服务,需要设定使用SSL连接。作为一示例,如果被代理服务需要使用HEADER中设定授权TOKEN信息或者HOST等信息,通过字符串数组的方式在配置文件中进行设定。作为另一示例,如果被代理服务是Restful风格网络接口,需要对进行请求进行GET、POST请求以外的类型转化,需要设定转换开关配置。
在一示例性实施例中,在代理服务收到服务调用方发起的HTTP请求后,本实施例还可以将所述代理服务接收到的HTTP请求由第一版本调整为第二版本,其中,所述第一版本高于第二版本。作为示例,例如本实施例可以将服务调用方的HTTP请求由1.1版本修改为1.0版本,避免被代理服务一直保持TCP连接,从而产生系统资源浪费。
在另一示例性实施例中,本申请还提供一种网络服务调用系统,用于执行步骤:
步骤1:针对需要被代理的单体系统应用、第三方网络服务进行代理服务配置。
具体地,采用配置文件存储代理服务自身IP,服务端口相关配置项。对于被代理服务常见的HTTP请求HEADER中放入TOKEN鉴权,第三方网络服务对HEADER定制化要求,对于Restful风格网络服务中非GET、POST请求使用URL第一级目录作为方法名进行转换均可以在配置文件设定相关内容。对于被代理服务为HTTPS服务,使用SSL套接字方式连接在配置文件中进行设置。对于是否将需要将被代对象注册至微服务架构的服务注册发现中心,需要将对应服务注册发现中心的地址、被代理服务的服务名及相关注册信息在配置文件中进行配置。
步骤2:启动代理及注册服务。
具体地,依照步骤1中设定的服务端口启动服务监听端口,等待调用方发送HTTP请求建立TCP连接。依照步骤1中设定是否需要注册至服务注册发现中心,将相关注册信息以HTTP请求方式返送至服务注册发现中心,注册成功后定时发送心跳信息保证注册后的服务可以被正常调用。
步骤3:获取调用方建立TCP连接,同时建立对被代理服务建立TCP连接。
具体地,获取调用方HTTP请求建立的TCP连接后,采用多线程形式,每个连接由一个线程处理。在对应线程中依据步骤1设定的配置内容建立被代理服务的TCP连接,按照配置内容要求确定是否采用SSL(Secure Socket Layer,安全套接层,简称SSL)套接字方式建立连接。即可以通过设置设定在建立相关TCP连接中,使用SSL进行安全套接字形式报文传输,匹配被代理网络服务为HTTPS提供服务,保证传输过程中报文的安全传输。
步骤4:解析接收的HTTP协议报文,按照设定内容进行转换,并向代理对象转发。
具体地,为避免字符编码转码过程中出现错误或者不可逆的转换,对HTTP协议报文直接采用字节方式进行解析。将HTTP协议报文中的HTTP1.1方式转换为HTTP1.0,避免被代理服务保留使用过的连接产生不必要的系统资源浪费。将HTTP协议报文进行切分,对于配置中需要添加HEADER内容,例如鉴权TOKEN认证,定制化HEADER内容将转化为8位字节数组添加入原报文字节数组。如果配置文件中设定了对Restful风格服务进行转换,将原报文中URL第一级目录提取[\]字符后作为HTTP协议的方法名替换原有方法名,放入转发报文字节数组,转发报文中的URL去掉被提取的第一级目录确保调用正确。使用定长数组循环读取报文内容直至报文内容读取完毕,每次读取后进行对应解析转化后将对应字节数组发送至被代理服务TCP连接。
步骤5:接收被代理服务返回报文并通过与调用方的TCP连接发送至调用方。
具体地,通过与被代理服务建立的TCP连接读取返回的报文内容,使用定长数组循环读取报文内容直至报文内容读取完毕,每次读取后将对应字节数组发送至调用方TCP连接。报文内容读取发送完毕后,关闭对应两条的TCP连接,对应线程关闭,完成代理服务。
综上所述,本申请提供一种网络服务调用系统,首先接收服务调用方向代理服务发起的HTTP请求,并基于HTTP请求建立代理服务与服务调用方的TCP连接;以及,根据预先配置的被代理服务的网络地址,建立代理服务与被代理服务的TCP连接;然后对HTTP请求进行报文解析,并按照预先确定的配置内容,对解析后的报文内容进行修改;再通过代理服务将修改后的报文内容发送至被代理服务,并接收被代理服务反馈的HTTP答复报文;以及,通过代理服务将HTTP答复报文反馈至服务调用方,以使服务调用方调用被代理服务。由此可知,本系统通过设定代理对象相关配置,可以代理被代理服务的网络服务调用;也可以设定服务注册发现中心相关注册参数及心跳参数,将代理服务注册至服务注册发现中心便于通过API网关统一调用。在转发过程中通过TCP连接对HTTP协议报文按照配置进行转化修改,保障相关网服务代理对象无须做出代码层面的修改即可被调用。本系统可以用于代理已有单体系统应用网络服务、第三方网络服务、Restful风格网络服务,通过配置修改HTTP协议报文,使其可以零代码修改满足被调用需求,并可以注册至微服务架构的服务注册发现中心,满足统一调用需求。
需要说明的是,上述实施例所提供网络服务调用系统与上述实施例所提供的网络服务调用方法属于同一构思,其中各个模块和单元执行操作的具体方式已经在方法实施例中进行了详细描述,此处不再赘述。上述实施例所提供的网络服务调用系统在实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将系统的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能,本处也不对此进行限制。所以,本申请有效克服了现有技术中的种种缺点而具高度产业利用价值。
上述实施例仅例示性说明本申请的原理及其功效,而非用于限制本申请。任何熟悉此技术的人士皆可在不违背本申请的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本申请所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本申请的权利要求所涵盖。
本说明书中附图所绘示的结构、比例、大小等,均仅用以配合说明书所揭示的内容,以供熟悉此技术的人士了解与阅读,并非用以限定本申请可实施的限定条件,故不具技术上的实质意义,任何结构的修饰、比例关系的改变或大小的调整,在不影响本申请所能产生的功效及所能达成的目的下,均应仍落在本申请所揭示的技术内容得能涵盖的范围内。同时,本说明书中所引用的如“上”、“下”、“左”、“右”、“中间”及“一”等的用语,亦仅为便于叙述的明了,而非用以限定本申请可实施的范围,其相对关系的改变或调整,在无实质变更技术内容下,当亦视为本申请可实施的范畴。
应当理解的是,尽管在本申请实施例中可能采用术语第一、第二、第三等来描述预设范围等,但这些预设范围不应限于这些术语。这些术语仅用来将预设范围彼此区分开。例如,在不脱离本申请实施例范围的情况下,第一预设范围也可以被称为第二预设范围,类似地,第二预设范围也可以被称为第一预设范围。

Claims (10)

1.一种网络服务调用方法,其特征在于,包括以下步骤:
接收服务调用方向代理服务发起的HTTP请求,并基于所述HTTP请求建立所述代理服务与所述服务调用方的TCP连接;以及,
根据预先配置的被代理服务的网络地址,建立所述代理服务与所述被代理服务的TCP连接;
对所述HTTP请求进行报文解析,并按照预先确定的配置内容,对解析后的报文内容进行修改;
通过所述代理服务将修改后的报文内容发送至所述被代理服务,并接收所述被代理服务反馈的HTTP答复报文;以及,通过所述代理服务将所述HTTP答复报文反馈至所述服务调用方,以使所述服务调用方调用所述被代理服务。
2.根据权利要求1所述的网络服务调用方法,其特征在于,通过所述代理服务将所述HTTP答复报文反馈至所述服务调用方后,所述方法还包括:
断开所述代理服务与所述服务调用方的TCP连接,以及,
断开所述代理服务与所述被代理服务的TCP连接。
3.根据权利要求1或2所述的网络服务调用方法,其特征在于,在接收服务调用方向代理服务发起的HTTP请求前,所述方法还包括:
获取预先配置的代理服务端口;
启动所述代理服务,并基于所述代理服务端口监听所述代理服务,等待所述服务调用方向所述代理服务发起HTTP请求。
4.根据权利要求1或2所述的网络服务调用方法,其特征在于,对解析后的报文内容进行修改的过程包括:
将解析后的报文内容记为原始报文内容;
向所述原始报文内容中添加权限认证的HTTP Head报文,得到修改后的报文内容;或者,按照预设规则将所述原始报文内容中的部分字段进行替换或转化,得到修改后的报文内容。
5.根据权利要求4所述的网络服务调用方法,其特征在于,按照预设规则将所述原始报文内容中的部分字段进行替换或转化,得到修改后的报文内容的过程包括:
将所述HTTP请求中URL的第一级路径作为请求方法字段进行报文修改,得到所述预设规则;
按照所述预设规则将所述原始报文内容中的GET字段替换或转化为PUT字段、DELETE字段;和/或,按照所述预设规则将所述原始报文内容中的POST字段替换或转化为PUT字段、DELETE字段。
6.根据权利要求1所述的网络服务调用方法,其特征在于,通过所述代理服务将修改后的报文内容发送至所述被代理服务时,所述方法还包括:
分段接收修改后的报文内容,并通过所述代理服务将修改后的报文内容分段发送至所述被代理服务;和/或,
分段接收修改后的报文内容,并通过所述代理服务将所述HTTP答复报文分段反馈至所述服务调用方。
7.根据权利要求1所述的网络服务调用方法,其特征在于,在建立所述代理服务与所述被代理服务的TCP连接前,所述方法还包括:
将所述被代理服务注册至微服务架构中的注册发现中心,并设定所述注册发现中心的网络地址或者域名、指定对应端口,以及设定待注册服务的服务名称和服务信息;和/或,
对所述被代理服务进行安全套接字形式报文传输,将所述被代理服务匹配为HTTP提供网络服务;和/或,
通过字符串数组方式对所述被代理服务进行设定,以使所述被代理服务使用HEADER中设定授权TOKEN信息或者HOST信息。
8.根据权利要求1所述的网络服务调用方法,其特征在于,所述方法还包括:将所述代理服务接收到的HTTP请求由第一版本调整为第二版本,其中,所述第一版本高于第二版本。
9.一种网络服务调用系统,其特征在于,包括有:
第一网络连接模块,用于接收服务调用方向代理服务发起的HTTP请求,并基于所述HTTP请求建立所述代理服务与所述服务调用方的TCP连接;
第二网络连接模块,用于根据预先配置的被代理服务的网络地址,建立所述代理服务与所述被代理服务的TCP连接;
报文修改模块,用于对所述HTTP请求进行报文解析,并按照预先确定的配置内容,对解析后的报文内容进行修改;
网络服务调用模块,用于通过所述代理服务将修改后的报文内容发送至所述被代理服务,并接收所述被代理服务反馈的HTTP答复报文;以及,通过所述代理服务将所述HTTP答复报文反馈至所述服务调用方,以使所述服务调用方调用所述被代理服务。
10.根据权利要求9所述的网络服务调用系统,其特征在于,通过所述代理服务将所述HTTP答复报文反馈至所述服务调用方后,所述网络服务调用模块还包括:
断开所述代理服务与所述服务调用方的TCP连接,以及,
断开所述代理服务与所述被代理服务的TCP连接。
CN202211097622.1A 2022-09-08 2022-09-08 一种网络服务调用方法及系统 Pending CN115589426A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211097622.1A CN115589426A (zh) 2022-09-08 2022-09-08 一种网络服务调用方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211097622.1A CN115589426A (zh) 2022-09-08 2022-09-08 一种网络服务调用方法及系统

Publications (1)

Publication Number Publication Date
CN115589426A true CN115589426A (zh) 2023-01-10

Family

ID=84771926

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211097622.1A Pending CN115589426A (zh) 2022-09-08 2022-09-08 一种网络服务调用方法及系统

Country Status (1)

Country Link
CN (1) CN115589426A (zh)

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050014489A1 (en) * 2003-07-01 2005-01-20 Qu Zhigang System, apparatus, and method for providing a mobile server
CN1731784A (zh) * 2004-08-06 2006-02-08 华为技术有限公司 超文本传输协议服务的安全管理方法
US20080183902A1 (en) * 2007-01-31 2008-07-31 Nathaniel Cooper Content transform proxy
CN101534302A (zh) * 2009-04-16 2009-09-16 杭州华三通信技术有限公司 一种提供tcp服务的方法、系统和相关装置
CN111131193A (zh) * 2019-12-10 2020-05-08 四川新网银行股份有限公司 支持多协议异构非代码侵入的分布式服务治理的方法
US10965770B1 (en) * 2020-09-11 2021-03-30 Metacluster It, Uab Dynamic optimization of request parameters for proxy server
CN112995324A (zh) * 2021-03-10 2021-06-18 中国民航信息网络股份有限公司 服务调用方法、装置、计算机可读介质以及设备
CN114125051A (zh) * 2022-01-26 2022-03-01 飞狐信息技术(天津)有限公司 一种动态服务发现的代理方法及装置
WO2022057000A1 (zh) * 2020-09-16 2022-03-24 厦门网宿有限公司 一种数据代理方法、系统及代理服务器
CN114721842A (zh) * 2021-01-05 2022-07-08 中国移动通信有限公司研究院 服务调用方法、装置及电子设备

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050014489A1 (en) * 2003-07-01 2005-01-20 Qu Zhigang System, apparatus, and method for providing a mobile server
CN1731784A (zh) * 2004-08-06 2006-02-08 华为技术有限公司 超文本传输协议服务的安全管理方法
US20080183902A1 (en) * 2007-01-31 2008-07-31 Nathaniel Cooper Content transform proxy
CN101534302A (zh) * 2009-04-16 2009-09-16 杭州华三通信技术有限公司 一种提供tcp服务的方法、系统和相关装置
CN111131193A (zh) * 2019-12-10 2020-05-08 四川新网银行股份有限公司 支持多协议异构非代码侵入的分布式服务治理的方法
US10965770B1 (en) * 2020-09-11 2021-03-30 Metacluster It, Uab Dynamic optimization of request parameters for proxy server
WO2022057000A1 (zh) * 2020-09-16 2022-03-24 厦门网宿有限公司 一种数据代理方法、系统及代理服务器
CN114721842A (zh) * 2021-01-05 2022-07-08 中国移动通信有限公司研究院 服务调用方法、装置及电子设备
CN112995324A (zh) * 2021-03-10 2021-06-18 中国民航信息网络股份有限公司 服务调用方法、装置、计算机可读介质以及设备
CN114125051A (zh) * 2022-01-26 2022-03-01 飞狐信息技术(天津)有限公司 一种动态服务发现的代理方法及装置

Similar Documents

Publication Publication Date Title
US10819757B2 (en) System and method for real-time communication by using a client application communication protocol
US20230124046A1 (en) System and method for determining and communicating presence information
US7418485B2 (en) System and method for addressing networked terminals via pseudonym translation
US7805527B2 (en) Using a variable identity pipe for constrained delegation and connection pooling
US8291077B2 (en) Provision of services over a common delivery platform such as a mobile telephony network
EP2633667B1 (en) System and method for on the fly protocol conversion in obtaining policy enforcement information
US11792626B2 (en) Combined service discovery and connection setup for service-based architectures
US9294867B2 (en) Provision of services over a common delivery platform such as a mobile telephony network
US8453158B2 (en) Method, apparatus, and system for enhancing application reliability of a script-based service
JP2007089200A (ja) 通信サービスのためのサードパーティアクセスゲートウェイ
US8554839B2 (en) Method and device for intercommunicating address book information between different networks
JP2001507189A (ja) インターネットss7ゲートウエイ
CN111510476B (zh) 通信方法、装置、计算机设备和计算机可读存储介质
JP2022541760A (ja) コアネットワークドメインにおける証明書ハンドリングのための技法
WO2021027450A1 (zh) Ims终端的注册方法、装置、位置信息服务器及存储介质
CN112104640B (zh) 网关的数据处理方法、装置、设备及可读存储介质
CN114153626A (zh) 一种服务集成过程抽象的方法、装置和计算机设备
US20060161616A1 (en) Provision of services over a common delivery platform such as a mobile telephony network
US20030005032A1 (en) Remote assembly of messages for distributed applications
CN112202744B (zh) 一种多系统数据通信方法和装置
CN115589426A (zh) 一种网络服务调用方法及系统
EP1681832A1 (en) Provision of services over a common delivery platform such as a mobile telephony network
WO2017215265A1 (zh) 一种垂直行业用户系统、设备以及分发身份识别号的方法
CN112261490B (zh) 视频分享方法及装置、应用功能实体、拨号软件系统
WO2024094105A1 (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