CN114697306B - 一种http客户端和数据通信方法 - Google Patents
一种http客户端和数据通信方法 Download PDFInfo
- Publication number
- CN114697306B CN114697306B CN202210174947.9A CN202210174947A CN114697306B CN 114697306 B CN114697306 B CN 114697306B CN 202210174947 A CN202210174947 A CN 202210174947A CN 114697306 B CN114697306 B CN 114697306B
- Authority
- CN
- China
- Prior art keywords
- http
- request
- message
- response
- response message
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 47
- 238000004891 communication Methods 0.000 title claims abstract description 40
- 230000004044 response Effects 0.000 claims abstract description 96
- 230000006870 function Effects 0.000 claims abstract description 60
- 230000001960 triggered effect Effects 0.000 claims abstract description 7
- 238000012360 testing method Methods 0.000 claims description 25
- 235000014510 cooky Nutrition 0.000 description 13
- 230000008569 process Effects 0.000 description 11
- 238000012545 processing Methods 0.000 description 11
- 238000005538 encapsulation Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 7
- 230000015556 catabolic process Effects 0.000 description 5
- 238000006731 degradation reaction Methods 0.000 description 5
- 230000002159 abnormal effect Effects 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000001419 dependent effect Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000013475 authorization Methods 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/1805—Append-only file systems, e.g. using logs or journals to store data
- G06F16/1815—Journaling file systems
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
- H04L1/18—Automatic repetition systems, e.g. Van Duuren systems
- H04L1/1867—Arrangements specially adapted for the transmitter end
- H04L1/188—Time-out mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/34—Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer And Data Communications (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明提供了一种HTTP客户端和数据通信方法,其中,HTTP客户端运行于电子设备中,所述电子设备预先在内存中加载HTTP客户端的目标工具类文件,目标工具类文件用于为电子设备中的微服务系统提供HTTP协议的数据通信功能,HTTP客户端包括:发送模块,用于响应微服务系统中的微服务触发的通信指令,确定通信指令对应的请求内容、目标地址以及请求类型;根据请求内容、目标地址以及请求类型构建HTTP请求;将HTTP请求发往目标地址对应的服务端;接收模块,接收所述服务端响应HTTP请求所反馈的响应消息,对响应消息进行解析,获得响应消息中的消息内容。能够有效的减少对电子设备资源的占用,极大的提高了运行速度。
Description
技术领域
本发明涉及数据处理技术领域,特别涉及一种HTTP客户端和数据通信方法。
背景技术
超文本传输协议(Hyper Text Transfer Protocol,HTTP)是互联网上应用最广泛的网络协议。HTTP客户端是指采用HTTP协议的客户端,可以用来发起HTTP请求或访问,实现从服务端下载数据或向服务端上传数据。
目前,在微服务架构中,通常会采用声明式HTTP客户端openFeign框架进行数据通信,然而,客户端框架对环境的依赖程度大,会占用运行客户端的电子设备大量的内存资源与计算资源,导致客户端的运行速度慢。
发明内容
本发明所要解决的技术问题是提供一种HTTP客户端和数据通信方法,能够减少运行电子设备的资源占用,提高HTTP客户端的运行速度。具体方案如下:
根据本发明实施例的第一方面,提供一种HTTP客户端,所述HTTP客户端运行于电子设备中,所述电子设备预先在内存中加载所述HTTP客户端的目标工具类文件,所述目标工具类文件用于为所述电子设备中的微服务系统提供HTTP协议的数据通信功能,所述HTTP客户端包括:
发送模块,用于响应所述微服务系统中的微服务触发的通信指令,确定所述通信指令对应的请求内容、目标地址以及请求类型;根据所述请求内容、所述目标地址以及所述请求类型构建HTTP请求;将所述HTTP请求发往所述目标地址对应的服务端;
接收模块,接收所述服务端响应所述HTTP请求所反馈的响应消息,对所述响应消息进行解析,获得所述响应消息中的消息内容。
上述的HTTP客户端,可选的,还包括:压力测试模块;
所述压力测试模块,用于接收压力测试参数;根据所述压力测试参数向所述服务端发送压力测试请求,获得压力测试结果。
上述的HTTP客户端,可选的,还包括:日志拦截器;
所述日志拦截器,用于根据所述HTTP请求以及所述响应消息生成日志记录。
上述的HTTP客户端,可选的,还包括:消息推送模块,
所述消息推送模块,用于在所述响应消息中的消息内容满足预设的推送条件的情况下,推送所述消息内容。
上述的HTTP客户端,可选的,所述发送模块,用于:
获取预先设置的超时时间参数以及重定向次数参数;
根据所述超时时间参数以及所述重定向次数参数将所述HTTP请求发往所述目标地址对应的服务端。
上述的HTTP客户端,可选的,所述接收模块,用于按预设的回调模式接收所述服务端响应于所述HTTP请求所反馈的响应消息。
根据本发明实施例的第二方面,提供一种数据通信方法,应用于HTTP客户端,所述HTTP客户端运行于电子设备中,所述电子设备预先在内存中加载所述HTTP客户端的目标工具类文件,所述目标工具类文件用于为所述电子设备中的微服务系统提供HTTP协议的数据通信功能,所述方法包括:
响应于所述微服务系统中的微服务触发的通信指令,确定所述通信指令对应的请求内容、目标地址以及请求类型;
根据所述请求内容、所述目标地址以及所述请求类型构建HTTP请求;将所述HTTP请求发往所述目标地址对应的服务端;
接收所述服务端响应所述HTTP请求所反馈的响应消息;
对所述响应消息进行解析,获得所述响应消息中的消息内容。
上述的方法,可选的,所述将所述HTTP请求发往所述目标地址对应的服务端,包括:
获取预先设置的超时时间参数以及重定向次数参数;
根据所述超时时间参数以及所述重定向次数参数将所述HTTP请求发往所述目标地址对应的服务端。
上述的方法,可选的,所述接收所述服务端响应所述HTTP请求所反馈的响应消息,包括:
按预设的回调模式接收所述服务端响应于所述HTTP请求所反馈的响应消息。
上述的方法,可选的,所述对所述响应消息进行解析,获得所述响应消息中的消息内容之后,还包括:
在所述响应消息中的消息内容满足预设的推送条件的情况下,推送所述消息内容。
与现有技术相比,本发明包括以下优点:
本发明提供了一种HTTP客户端和数据通信方法,其中,所述HTTP客户端运行于电子设备中,所述电子设备预先在内存中加载所述HTTP客户端的目标工具类文件,所述目标工具类文件用于为所述电子设备中的微服务系统提供HTTP协议的数据通信功能,所述HTTP客户端包括:发送模块,用于响应所述微服务系统中的微服务触发的通信指令,确定所述通信指令对应的请求内容、目标地址以及请求类型;根据所述请求内容、所述目标地址以及所述请求类型构建HTTP请求;将所述HTTP请求发往所述目标地址对应的服务端;接收模块,接收所述服务端响应所述HTTP请求所反馈的响应消息,对所述响应消息进行解析,获得所述响应消息中的消息内容。在本实施例中,通过电子设备加载HTTP客户端的目标工具类,以为微服务系统提供HTTP协议的数据通信功能,能够有效的减少HTTP客户端对电子设备资源的占用,极大的提高了运行速度。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明提供的一种HTTP客户端的结构示意图;
图2为本发明提供的一种HTTP客户端的又一结构示意图;
图3为本发明提供的一种HTTP客户端的又一结构示意图;
图4为本发明提供的一种HTTP客户端的又一结构示意图;
图5为本发明提供的一种HTTP客户端的架构示例图;
图6为本发明提供的一种数据通信方法的方法流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本申请中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
微服务架构中,数据通信是重中之重,HTTP协议作为一种无状态、高效便捷的协议,是微服务远程调用首选。目前的微服务系统通常会采用声明式HTTP客户端openFeign框架进行数据通信,然而,客户端框架对环境的依赖程度大,会占用运行客户端的电子设备大量的内存资源与计算资源,导致客户端的运行速度慢。
基于此,参见图1,为本发明实施例提供的一种HTTP客户端的结构示意图,所述HTTP客户端运行于电子设备中,所述电子设备预先在内存中加载所述HTTP客户端的目标工具类文件,所述目标工具类文件用于为所述电子设备中的微服务系统提供HTTP协议的数据通信功能,所述HTTP客户端包括:
发送模块101,用于响应所述微服务系统中的微服务触发的通信指令,确定所述通信指令对应的请求内容、目标地址以及请求类型;根据所述请求内容、所述目标地址以及所述请求类型构建HTTP请求;将所述HTTP请求发往所述目标地址对应的服务端。
在本实施例中,请求内容可以包含请求头信息和请求正文信息等其中一种或多种,目标地址可以为URL地址,请求类型包括GET类型、POST类型、HEAD类型、OPTIONS类型、PUT类型、DELETE类型、TRACE类型、CONNECT类型和PATCH类型等其中一种或多种,其中,GET类型用于请求获取HTTP请求中的唯一资源定位标识符URI所标识的资源;POST类型用于在HTTP请求中的URI所标识的资源后增加新的数据;HEAD类型用于获取HTTP请求中的URI所标识的资源的响应消息报头;OPTIONS类型用于查询服务器的性能,或者查询与资源相关的选项和需求;PUT类型用于请求服务器存储或修改一个资源,并用HTTP请求中的URI作为其标识;DELETE类型用于请求服务器删除HTTP请求中的URI所标识的资源;TRACE类型用于请求服务器回送收到的请求信息,主要用于测试或诊断;CONNECT类型表示HTTP/1.1协议中能够将连接改为管道方式的代理服务器;PATCH类型用于更新HTTP请求中的URI所标识的资源。
接收模块102,接收所述服务端响应所述HTTP请求所反馈的响应消息,对所述响应消息进行解析,获得所述响应消息中的消息内容。
在本实施例中,通过对响应消息进行解析,可以获得响应消息的消息内容,消息内容可以包含状态行、消息报头和响应正文等,状态行可以包含HTTP协议的版本,状态码,以及对状态码的文本描述。
可选的,获取到响应消息的消息内容后,可以对消息内容执行以下一种或多种操作:可以获取消息内容中的cookie字符串、获取消息内容中的cookie值、以字符串形式获取消息内容中的响应正文、把响应正文以字节流方式写入硬盘,以对响应正文进行存储。
在本实施例中,通过电子设备加载HTTP客户端的目标工具类,以为微服务系统提供HTTP协议的数据通信功能,而非是客户端框架,能够有效的减少HTTP客户端对电子设备资源的占用,极大的提高了运行速度。
在一些实施例中,HTTP客户端可以兼容多种客户端工具类文件,可选的,目标工具类文件包括OkHttp类文件、ApacheClient类文件、Hutool-Http类文件和HttpURLConnection类文件中的至少一种工具类文件。
在一些实施例中,电子设备可以为各种类型的设备,例如,可以为kubernetes集群中的服务器,电子设备可以检测HTTP客户端的环境是否引入依赖jar文件包,在环境中引入依赖的情况下,可以按顺序将依赖jar文件包中的OkHttp类文件、ApacheClient类文件和Hutool-Http类文件依次加载至内存中,若环境中未引入依赖,则加载HttpURLConnection类文件,若环境中引入多个依赖,则按照扫描顺序取第一个加载到的jar文件包,jar文件包中包含HTTP客户端的多个工具类文件。
在一些实施例中,在请求类型为POST类型或PUT类型的情况下,确定待上传文件的所需的内存空间,在待上传文件所需的内存空间小于预设的内存空间阈值的情况下将请求内容中待上传的文件加载至内存中,以将内存中的待上传文件传输到服务端;在待上传文件所需的内存空间大于预设的内存空间阈值的情况下,采用流式上传方式上传所述待上传文件。
在一些实施例中,HTTP客户端的发送模块可以获取预先设置的超时时间参数以及重定向次数参数;根据所述超时时间参数以及所述重定向次数参数将所述HTTP请求发往所述目标地址对应的服务端。
在本实施例中,超时时间参数可以包括读取数据超时时间和连接服务器超时时间等,超时时间参数以及重定向次数参数可以由技术人员依据实际需求进行设定。
在一些实施例中,在HTTP请求发送失败或服务端异常时,可以重新向所述服务端发送所述HTTP请求,直至发送HTTP请求次数满足预设的重试次数阈值。
在一些实施例中,HTTP客户端的接收模块可以按预设的回调模式接收所述服务端响应于所述HTTP请求所反馈的响应消息。
在本实施例中,该回调模式可以是接收服务端成功响应的响应消息,拒绝服务端响应失败的响应消息。
在一些实施例中,在服务端响应失败的情况下,可以对HTTP请求进行服务降级处理。
参见图2,本发明实施例提供的HTTP客户端还包括:压力测试模块103;
所述压力测试模块103,用于接收压力测试参数;根据所述压力测试参数向所述服务端发送压力测试请求,获得压力测试结果。
在本实施例中,压力测试参数可以包括请求速率、请求数速率的增加步长、总请求数、总持续时间以及压力测试请求响应结果的输出类型等其中一种或多种。请求速率可以为每秒钟请求数QPS,请求速率的增加步长可以表示为每秒钟增加多少QPS。
参见图3,本发明实施例提供的HTTP客户端还包括:日志拦截器104;
所述日志拦截器104,用于根据所述HTTP请求以及所述响应消息生成日志记录。
在本实施例中,日志拦截器可以根据HTTP请求以及响应消息生成日志记录,并在接收到日志记录打印指令时,输出所述日志记录。
在一些实施例中,可以将日志记录存储到关系型数据库中,并按预设时间段内的日志记录的访问量对关系型数据库中的日志记录进行排序,以便于结构化查询。
在一些实施例中,可以将日志记录存储到ES搜索引擎中,当接收到用户的日志查询指令时,ES搜索引擎输出与所述日志查询指令中的索引条件相匹配的日志记录。
在一些实施例中,可以将日志记录存储到大数据存储NewSQL数据库中,在当接收到索引指令时,输出与所述索引指令中的索引规则相匹配的日志记录。
参见图4,本发明实施例提供的HTTP客户端还包括:消息推送模块105,
所述消息推送模块105,用于在所述响应消息中的消息内容满足预设的推送条件的情况下,推送所述消息内容。
在本实施例中,推送条件可以为响应消息的消息内容中包含告警信息,可以通过邮件、短信和语音机器人的方式向用户推送消息内容中的告警信息。
参见图5,为本发明实施例提供的一种HTTP客户端的架构示例图,在实际应用过程中,可以自动适配HTTP客户端依赖,工具类首次加载到内存时会判断环境中引入的依赖(jar包),按照顺序依次加载OkHttp、ApacheClient、Hutool-Http,如果没有引入依赖默认会使用JDK自带的HttpURLConnection类,如果引入多个依赖,则按照扫描顺序取第一个加载到的jar。
在本实施例中,HTTP客户端提供拦截器模式,基于事件驱动思想实现高性能拦截器,内置了日志处理和消息推送两个拦截器,用户可以自由定义自己的拦截器插件。
可选的,HTTP客户端的发送模块采用了响应式编程和事件驱动架构,具备以下功能:REST支持、参数处理、cookie处理、Json支持、表单支持、文件上传下载、服务降级和日志处理等等。
可选的,HTTP客户端的接收模块采用了预设的回调模式以及响应对象封装,具备以外功能:保存文件、状态码处理、Cookie处理、Json支持、Callback、Then-cache模式和消息推送等等。
在本实施例中,HTTP客户端工具可以包含一个HTTP工具类,定位就是工具类而非框架。
例如,可以获取某一页面并输出响应的文本,具体实现代码如下:
Http.create("https://www.baidu.com")
.get("/")
.setTimeout(10_000)
.setMaxRedirectCount(2)
.then(r->{String html=r.body();
System.out.println(html);});
其中,get("/")用于路由到该页面,setTimeout(10_000)用于设置超时时间为10秒;setMaxRedirectCount(2)用于设置自动重定向次数为2,then()用于进行回调处理。
具体的,本发明实施例提供的HTTP客户端可以为流式代码风格的客户端,使得电子设备在运行HTTP客户端的代码过程中,执行完一个事件后返回对象本身,下面对HTTP客户端的功能做进一步的说明。
(1)构建者模式,静态方法创建对象。在本实施例中,HTTP客户端可以根据create(url)函数创建HTTP对象,根据域名创建,根据url自动识别协议,自动判定是否启用https协议。
(2)可以完备的REST风格支持。在本实施例中,HTTP客户端支持RESTFul风格的API,支持HTTP的8种请求类型:GET类型、POST类型、HEAD类型、OPTIONS类型,PUT类型,DELETE类型,TRACE类型,CONNECT类型,以及PATCH类型;其中,可以通过get(route)函数支持GET类型的请求;通过post(route)函数支持POST类型的请求,通过put(route)函数支持PUT类型的请求;通过head(route)函数支持HEAD类型的请求;通过options(route)函数支持OPTIONS类型的请求;通过trace(route)函数支持TRACE类型的请求;通过delete(route)函数支持DELETE类型的请求;通过connect(route)函数支持CONNECT类型的请求,通过patch(route)函数支持PATCH类型的请求。
(3)超时设置。在本实施例中,HTTP客户端的超时时间参数默认是-1,代表无限时长,具体可以通过setReadTimeout()函数设置读取数据超时时间,以及通过setConnectionTimeout()函数设置连接服务器超时时间。
(4)路由参数或者url拼接参数。在本实施例中,路由替换参数在路由中可以使用{}占位符,入参按照从左往右的顺序依次替换占位符,例如:参数分别为1、2和3,routeParams("1","2","3");可以进行参数拼接,queryParams("a=1","b=2","c=3")。
(5)请求头参数和常用的请求头封装,在本实施例中,HTTP客户端可以通过header("key","value")函数支持自定义请求头参数。以下为HTTP客户端支持的封装请求头的函数:contentType("application/json")函数,用于内容类型封装;authorization("WcEgt5i6CIGXMX9ikvMNYGV4dYkeSPth")函数,用于认证封装;bearerToken("WcEgt5i6CIGXMX9ikvMNYGV4dYkeSPth")函数,用于bearer规范认证封装;basicAuth("admin","123456")函数,用于basicAuth认证封装;keepAlive()函数,用于保持连接封装,referer("")函数,用于防盗链封装;userAgent("")函数,用于用户代理封装;acceptEncoding("gzip,deflate,br")函数,用于压缩方式封装;disableCache()函数,用于不启用缓存封装。
(6)自动重定向机制。在本实施例中,可以通过setMaxRedirectCount()函数设置最大重定向次数,其中,默认值可以设置为0,即不重定向。
(7)cookie支持。在本实施例中,可以采用disableCookie()函数禁止cookie,采用enableDefaultCookie()函数启用默认的cookie;采用cookies("")函数设置cookie。
(8)支持设置代理。
在本实施例中,可以通过setHttpProxy("http://localhost",8080)函数设置代理。
(9)body传参,支持泛型,根据泛型类自动包装对象。在本实施例中,可以通过bodyJson("")函数在传递json允许接受泛型对象,将泛型对象转为JSON字符串,可以通过body("")函数传递普通字符串允许接受泛型对象,会自动调用toString()方法转为字符串。
(10)表单支持和文件上传。
在本实施例中,可以通过form()函数进行表单提交。
具体的,可以通过form("","")函数支持HTTP客户端的表单单个传参方式,通过form(new LinkedHashMap<String,Object>())函数支持表单多个传参方式。
可选的,可以通过form("",newFile(""))函数进行单文件上传;可以通过form("",new File(""),new File(""))函数进行多文件上传;通过form("",new ArrayList<File>())函数进行多文件上传。
(11)超大文件上传,防止内存溢出。在本实施例中,HTTP客户端可以启用流式文件上传,指定缓存字节数,默认文件上传方式需要先读入内存,对于超大文件防止内存溢出,使用流式上传方式。具体可以通过setChunkedStreamingMode(1024)函数实现,1024为指定的缓存字节数。
(12)服务降级和异常处理,HTTP连接超时或服务端异常时,提供默认返回结果作为服务降级策略。在本实施例中,可以通过defaultResult("")函数实现服务降级。
(13)重试机制。在本实施例中,可以通过setMaxRetryCount()函数设置最大重试次数。
(14)执行请求。在本实施例中,可以通过Http.Response execute=http.execute()函数执行请求,通过Http.Response response=http.executeAsync()函数异步执行请求。
(15)常用响应处理。在本实施例中,HTTP客户端可以通过int status=response.getStatus()方法获取状态码;通过String cookieStr=response.getCookieStr()方法获取cookie字符串;通过String cookie=response.getCookie("")方法获取某个cookie值;通过String body=response.body()方法以字符串形式获取body;通过long length=response.writeBody("D:/tmp")方法把body以字节流方式写入硬盘,存储为某个文件。
(16)回调模式支持。
在本发明实施例中,可以通过http.callback()函数设置回调模型,具体可以设置为成功响应回调和异常响应回调,也可以只设置成功响应回调,忽略异常处理。
(17)提供压力测试功能。
在本实施例综合功能,可以设置压力测试参数,根据压力测试参数进行压力测试。
(18)提供全局日志处理功能。
在本实施例中,HTTP客户端支持日志log安级别打印;支持日志存储到关系型数据库,默认近期3个月,热点日志数据,方便结构化查询。支持日志存储到ES搜索引擎,需要手工配置开启,ES提供倒序索引,方便检索;支持日志存储到表格存储等大数据存储NewSQL数据库,需要手工配置开启,低成本永久日志保存解决方案,同时支持规则构建索引从而支持结构化或半结构化查询。
(19)提供消息推送通知插件。
在本实施例中,HTTP客户端支持即时通讯软件告警、邮件告警、短信通知、语音机器人通知等。
本发明实施例还提供了一种数据通信方法,该方法可以应用于HTTP客户端,所述HTTP客户端运行于电子设备中,所述电子设备预先在内存中加载所述HTTP客户端的目标工具类文件,所述目标工具类文件用于提供HTTP协议的数据通信功能,所述方法的方法流程图如图6所示,包括:
S601:响应于通信指令,确定所述通信指令对应的请求内容、目标地址以及请求类型。
S602:根据所述请求内容、所述目标地址以及所述请求类型构建HTTP请求。
S603:将所述HTTP请求发往所述目标地址对应的服务端。
S604:接收所述服务端响应所述HTTP请求所反馈的响应消息。
S605:对所述响应消息进行解析,获得所述响应消息中的消息内容。
在本实施例中,通过电子设备加载HTTP客户端的目标工具类,以为微服务系统提供HTTP协议的数据通信功能,而非是客户端框架,能够有效的减少HTTP客户端对电子设备资源的占用,极大的提高了客户端的运行速度。
在本发明提供的一实施例中,基于上述的实施过程,可选的,所述将所述HTTP请求发往所述目标地址对应的服务端,包括:
获取预先设置的超时时间参数以及重定向次数参数;
根据所述超时时间参数以及所述重定向次数参数将所述HTTP请求发往所述目标地址对应的服务端。
在本发明提供的一实施例中,基于上述的实施过程,可选的,所述接收所述服务端响应所述HTTP请求所反馈的响应消息,包括:
按预设的回调模式接收所述服务端响应于所述HTTP请求所反馈的响应消息。
在本发明提供的一实施例中,基于上述的实施过程,可选的,所述对所述响应消息进行解析,获得所述响应消息中的消息内容之后,还包括:
在所述响应消息中的消息内容满足预设的推送条件的情况下,推送所述消息内容。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本发明时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
以上对本发明所提供的一种HTTP客户端进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种HTTP客户端,其特征在于,所述HTTP客户端运行于电子设备中,所述电子设备预先在内存中加载所述HTTP客户端的目标工具类文件,所述目标工具类文件用于为所述电子设备中的微服务系统提供HTTP协议的数据通信功能,所述HTTP客户端包括:
发送模块,用于响应所述微服务系统中的微服务触发的通信指令,确定所述通信指令对应的请求内容、目标地址以及请求类型;根据所述请求内容、所述目标地址以及所述请求类型构建HTTP请求;将所述HTTP请求发往所述目标地址对应的服务端;
接收模块,接收所述服务端响应所述HTTP请求所反馈的响应消息,对所述响应消息进行解析,获得所述响应消息中的消息内容,所述消息内容包含状态行、消息报头和响应正文。
2.根据权利要求1所述的HTTP客户端,其特征在于,还包括:压力测试模块;
所述压力测试模块,用于接收压力测试参数;根据所述压力测试参数向所述服务端发送压力测试请求,获得压力测试结果。
3.根据权利要求1所述的HTTP客户端,其特征在于,还包括:日志拦截器;
所述日志拦截器,用于根据所述HTTP请求以及所述响应消息生成日志记录。
4.根据权利要求1所述的HTTP客户端,其特征在于,还包括:消息推送模块,
所述消息推送模块,用于在所述响应消息中的消息内容满足预设的推送条件的情况下,推送所述消息内容。
5.根据权利要求1所述的HTTP客户端,其特征在于,所述发送模块,用于:
获取预先设置的超时时间参数以及重定向次数参数;
根据所述超时时间参数以及所述重定向次数参数将所述HTTP请求发往所述目标地址对应的服务端。
6.根据权利要求1所述的HTTP客户端,其特征在于,所述接收模块,用于按预设的回调模式接收所述服务端响应于所述HTTP请求所反馈的响应消息。
7.一种数据通信方法,其特征在于,应用于HTTP客户端,所述HTTP客户端运行于电子设备中,所述电子设备预先在内存中加载所述HTTP客户端的目标工具类文件,所述目标工具类文件用于为所述电子设备中的微服务系统提供HTTP协议的数据通信功能,所述方法包括:
响应于所述微服务系统中的微服务触发的通信指令,确定所述通信指令对应的请求内容、目标地址以及请求类型;
根据所述请求内容、所述目标地址以及所述请求类型构建HTTP请求;将所述HTTP请求发往所述目标地址对应的服务端;
接收所述服务端响应所述HTTP请求所反馈的响应消息;
对所述响应消息进行解析,获得所述响应消息中的消息内容,所述消息内容包含状态行、消息报头和响应正文。
8.根据权利要求7所述的方法,其特征在于,所述将所述HTTP请求发往所述目标地址对应的服务端,包括:
获取预先设置的超时时间参数以及重定向次数参数;
根据所述超时时间参数以及所述重定向次数参数将所述HTTP请求发往所述目标地址对应的服务端。
9.根据权利要求7所述的方法,其特征在于,所述接收所述服务端响应所述HTTP请求所反馈的响应消息,包括:
按预设的回调模式接收所述服务端响应于所述HTTP请求所反馈的响应消息。
10.根据权利要求7所述的方法,其特征在于,所述对所述响应消息进行解析,获得所述响应消息中的消息内容之后,还包括:
在所述响应消息中的消息内容满足预设的推送条件的情况下,推送所述消息内容。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210174947.9A CN114697306B (zh) | 2022-02-24 | 2022-02-24 | 一种http客户端和数据通信方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210174947.9A CN114697306B (zh) | 2022-02-24 | 2022-02-24 | 一种http客户端和数据通信方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114697306A CN114697306A (zh) | 2022-07-01 |
CN114697306B true CN114697306B (zh) | 2024-03-22 |
Family
ID=82137213
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210174947.9A Active CN114697306B (zh) | 2022-02-24 | 2022-02-24 | 一种http客户端和数据通信方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114697306B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106997298A (zh) * | 2016-01-22 | 2017-08-01 | 阿里巴巴集团控股有限公司 | 一种应用资源获取方法及装置 |
CN108234149A (zh) * | 2016-12-09 | 2018-06-29 | 沈阳美行科技有限公司 | 一种网络请求的管理方法和装置 |
WO2021147556A1 (zh) * | 2020-09-08 | 2021-07-29 | 平安科技(深圳)有限公司 | 一种视频数据展示方法、装置、终端设备及存储介质 |
CN113315820A (zh) * | 2021-05-20 | 2021-08-27 | 西安华讯科技有限责任公司 | 一种构建实体网格网络方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150039675A1 (en) * | 2013-07-31 | 2015-02-05 | Microsoft Corporation | Messaging over http protocol for data exchange |
-
2022
- 2022-02-24 CN CN202210174947.9A patent/CN114697306B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106997298A (zh) * | 2016-01-22 | 2017-08-01 | 阿里巴巴集团控股有限公司 | 一种应用资源获取方法及装置 |
CN108234149A (zh) * | 2016-12-09 | 2018-06-29 | 沈阳美行科技有限公司 | 一种网络请求的管理方法和装置 |
WO2021147556A1 (zh) * | 2020-09-08 | 2021-07-29 | 平安科技(深圳)有限公司 | 一种视频数据展示方法、装置、终端设备及存储介质 |
CN113315820A (zh) * | 2021-05-20 | 2021-08-27 | 西安华讯科技有限责任公司 | 一种构建实体网格网络方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN114697306A (zh) | 2022-07-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8452925B2 (en) | System, method and computer program product for automatically updating content in a cache | |
EP2962440B1 (en) | Real-time communications using a restlike api | |
EP2736281B1 (en) | Method and system for information transfer, and browser of mobile terminal | |
US8001529B2 (en) | System and method of testing wireless component applications | |
RU2689439C2 (ru) | Улучшение производительности веб-доступа | |
US20140280684A1 (en) | Independent actionscript analytics tools and techniques | |
US8713368B2 (en) | Methods for testing OData services | |
US20150113015A1 (en) | Method and Apparatus for Acquiring Resource | |
US6954779B2 (en) | Method for providing performance data of a web server independent of platform | |
RU2382402C2 (ru) | Гибкое управление контекстом для сеансов перечисления с использованием обмена контекстом | |
US20230205503A1 (en) | Method for dynamically integrating application programs, and software system and machine using the same | |
US20100332582A1 (en) | Method and System for Service Contract Discovery | |
US20130246646A1 (en) | Access of Resources by way of Hypertext Transfer Protocol | |
CN102984218B (zh) | 浏览器及其登录方法及系统 | |
US20180152337A1 (en) | Network monitoring to identify network issues | |
CN116204239A (zh) | 业务处理方法、装置和计算机可读存储介质 | |
US20030172110A1 (en) | Methods and apparatus for invoking a document style server operation using an operation name in a SOAPAction header | |
CN114697306B (zh) | 一种http客户端和数据通信方法 | |
US20150205675A1 (en) | Method and System for Improving Reliability of a Background Page | |
US9374437B2 (en) | Schema validation proxy | |
AU2018390863B2 (en) | Computer system and method for extracting dynamic content from websites | |
US10069938B1 (en) | Returning identifiers in default query responses | |
KR102196403B1 (ko) | 재지향 감소 | |
CN110874278A (zh) | 外部系统的嵌入方法、工作流系统、设备及存储介质 | |
CN113992644A (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 |