webservice接口与HTTP接口学习笔记一、webservice 的概念

news2025/4/10 18:38:38

webservice接口与HTTP接口学习笔记一、webservice 的概念

目录:导读

一、webservice 的概念

二、webservice接口测试

三、HTTP接口

四、HTTP协议结构


一、webservice 的概念

Web 是使应用程序可以与平台和编程语言无关的方式进行相互通信的一项技术。Web 服务是一个软件接口,它描述了一组可以在网络上通过标准化的 XML 消息传递访问的操作。它使用基于 XML 语言的协议来描述要执行的操作或者要与另一个 Web 服务交换的数据。一组以这种方式交互的 Web 服务在面向服务的体系结构(Service-Oriented Architecture,SOA)中定义了特殊的 Web 服务应用程序。

简单的说WebService是一个SOA(面向服务的编程)的架构,它是不依赖于语言,不依赖于平台,可以实现不同的语言(通过 xml 描述)间的相互调用,通过Internet进行基于Http协议的网络应用间的交互。通过SOAP在Web上提供的软件服务,使用WSDL文件进行说明,并通过UDDI进行注册。

XML:(Extensible Markup Language)扩展型可标记语言。面向短期的临时数据处理、面向万维网络,是Soap的基础。

Soap:(Simple Object Access Protocol)简单对象存取协议。是XML Web Service 的通信协议。当用户通过UDDI找到你的WSDL描述文档后,他通过可以SOAP调用你建立的Web服务中的一个或多个操作。SOAP是XML文档形式的调用方法的规范,它可以支持不同的底层接口,像HTTP(S)或者SMTP。

WSDL:(Web Services Description Language) WSDL 文件是一个 XML 文档,用于说明一组 SOAP 消息以及如何交换这些消息。大多数情况下由软件自动生成和使用。

UDDI (Universal Description, Discovery, and Integration) 是一个主要针对Web服务供应商和使用者的新项目。在用户能够调用Web服务之前,必须确定这个服务内包含哪些商务方法,找到被调用的接口定义,还要在服务端来编制软件,UDDI是一种根据描述文档来引导系统查找相应服务的机制。UDDI利用SOAP消息机制(标准的XML/HTTP)来发布,编辑,浏览以及查找注册信息。它采用XML格式来封装各种不同类型的数据,并且发送到注册中心或者由注册中心来返回需要的数据。

二、webservice接口测试

测试webservice接口,可以使用soapUI来进行测试,下面简单用soapUI来调用webservice接口:

1.打开soapUI,新建一个soap工程:

2.我们以天气预报的wsdl地址为例,导入soapUI查看其中的所有接口信息;

wsdl地址 http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?wsdl

3、查看接口及报文,输入参数直接进行调用

 

发送报文:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:web="http://WebXml.com.cn/">
   <soapenv:Header/>
   <soapenv:Body>
      <web:getSupportCity>
         <!--Optional:-->
         <web:byProvinceName>北京</web:byProvinceName>
      </web:getSupportCity>
   </soapenv:Body>
</soapenv:Envelope>

返回报文:

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
   <soap:Body>
      <getSupportCityResponse xmlns="http://WebXml.com.cn/">
         <getSupportCityResult>
            <string>北京 (54511)</string>
            <string>上海 (58367)</string>
            <string>天津 (54517)</string>
            <string>重庆 (57516)</string>
         </getSupportCityResult>
      </getSupportCityResponse>
   </soap:Body>
</soap:Envelope>

1、根元素:Envelope。

2、Header元素::不是强制出现,由程序员控制,主要用于携带一些额外的信息,比如用户名、密码

3、Body:调用正确,body元素内容应该遵守WSDL要求的格式。

三、HTTP接口

Http协议是建立在TCP协议基础之上的,当浏览器需要从服务器获取网页数据的时候,会发出一次Http请求。Http会通过TCP建立起一个到服务器的连接通道,当本次请求需要的数据完毕后,Http会立即将TCP连接断开,这个过程是很短的。所以Http连接是一种短连接,是一种无状态的连接。
HTTP协议的主要特点可概括如下:
1.支持客户/服务器模式。
2.简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST。每种方法规定了客户与服务器联系的类型不同。由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。
3.灵活:HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记。
4.无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。
5.无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。

 URL解析

    在WWW上,每一信息资源都有统一的且在网上唯一的地址,该地址就叫URL(Uniform Resource Locator,统一资源定位符),它是WWW的统一资源定位标志,就是指网络地址。HTTP协议工作于客户端-服务端架构之上。浏览器作为HTTP客户端通过URL向HTTP服务端即WEB服务器发送所有请求。Web服务器根据接收到的请求后,向客户端发送响应信息。

URL由三部分组成:资源类型、存放资源的主机域名、资源文件名。

URL的一般语法格式为(带方括号[]的为可选项):

protocol :// hostname[:port] / path / [;parameters][?query]#fragment

 以下面的URL为例:

http://blog.sina.com.cn/s/blog_537ad6610102xtb1.html?tj=hist

1、协议部分,代表页面使用的是http协议,在Internet中可以使用多种协议,如HTTP,FTP等等。在"HTTP"后面的“//”为分隔符;

2、域名部分,blog.sina.com.cn,也可以使用IP地址作为域名使用如:192.168.55.14:8080,其中8080为端口,域名和端口之间使用“:”作为分隔符。端口不是一个URL必须的部分,如果省略端口部分,将采用默认端口80/tcp;

3、虚拟目录部分,从域名后的第一个“/”开始到最后一个“/”为止,是虚拟目录部分。虚拟目录也不是一个URL必须的部分。本例中的虚拟目录是“/s/”

4、文件名部分:从域名后的最后一个“/”开始到“?”为止,是文件名部分,如果没有“?”,则是从域名后的最后一个“/”开始到“#”为止,是文件部分,如果没有“?”和“#”,那么从域名后的最后一个“/”开始到结束,都是文件名部分。本例中的文件名是“blog_537ad6610102xtb1.html”。文件名部分也不是一个URL必须的部分,如果省略该部分,则使用默认的文件名

5、锚部分:从“#”开始到最后,都是锚部分。锚部分也不是一个URL必须的部分(可以理解为定位)

6、参数部分:从“?”开始到“#”为止之间的部分为参数部分,又称搜索部分、查询部分。本例中的参数部分为“7.参数部分:从“?”开始到“#”为止之间的部分为参数部分,又称搜索部分、查询部分。本例中的参数部分为“boardID=5&ID=24618&page=1”。参数可以允许有多个参数,参数与参数之间用“&”作为分隔符。”。参数可以允许有多个参数,参数与参数之间用“&”作为分隔符。

四、HTTP协议结构

HTTP请求消息

客户端发送一个HTTP请求到服务器的请求消息包括以下格式:

请求行(request line)、请求头部(header)、空行和请求数据四个部分组成。 

格式如下:

<request-line>
<headers>
<blank line>
[<request-body>

1、请求行

请求行由请求方法字段、URL字段和HTTP协议版本字段3个字段组成,它们用空格分隔。例如,GET /index.html HTTP/1.1。

HTTP协议的请求方法有GET、POST、HEAD、PUT、DELETE、OPTIONS、TRACE、CONNECT。
最常用的方法有:
GET方法:在浏览器的地址栏中输入网址的方式访问网页时,浏览器采用GET方法向服务器获取资源,

POST方法要求被请求服务器接受附在请求后面的数据,常用于提交表单。
2、请求头部

请求头部由关键字/值对组成,每行一对,关键字和值用英文冒号“:”分隔。请求头部通知服务器有关于客户端请求的信息,典型的请求头有:

User-Agent:产生请求的浏览器类型。

Accept:客户端可识别的内容类型列表。

Host:请求的主机名,允许多个域名同处一个IP地址,即虚拟主机。

3、空行

最后一个请求头之后是一个空行,发送回车符和换行符,通知服务器以下不再有请求头。

4、请求正文

请求数据不在GET方法中使用,而是在POST方法中使用。POST方法适用于需要客户填写表单的场合。与请求数据相关的最常使用的请求头是Content-Type和Content-Length。

HTTP响应消息

在接收和解释请求消息后,服务器返回一个HTTP响应消息。

HTTP响应也是由三个部分组成,分别是:状态行、消息报头、响应正文

报文格式:

<status-line>
<headers>
<blank line>
[<response-body>]


1、状态行格式如下:

HTTP-Version Status-Code Reason-Phrase CRLF

其中,HTTP-Version表示服务器HTTP协议的版本;Status-Code表示服务器发回的响应状态代码;Reason-Phrase表示状态代码的文本描述。
状态代码有三位数字组成,第一个数字定义了响应的类别,且有五种可能取值:

1xx:指示信息--表示请求已接收,继续处理
2xx:成功--表示请求已被成功接收、理解、接受
3xx:重定向--要完成请求必须进行更进一步的操作
4xx:客户端错误--请求有语法错误或请求无法实现
5xx:服务器端错误--服务器未能实现合法的请求
常见状态代码、状态描述、说明:
200 OK      //客户端请求成功
400 Bad Request  //客户端请求有语法错误,不能被服务器所理解
401 Unauthorized //请求未经授权,这个状态代码必须和WWW-Authenticate报头域一起使用 
403 Forbidden  //服务器收到请求,但是拒绝提供服务
404 Not Found  //请求资源不存在,eg:输入了错误的URL
500 Internal Server Error //服务器发生不可预期的错误
503 Server Unavailable  //服务器当前不能处理客户端的请求,一段时间后可能恢复正常
eg:HTTP/1.1 200 OK (CRLF)

2、响应报头

响应头用于描述服务器的基本信息,以及数据的描述,服务器通过这些数据的描述信息,可以通知客户端如何处理等一会儿它回送的数据。

3、响应正文

响应体就是响应的消息体,如果是纯数据就是返回纯数据,如果请求的是HTML页面,那么返回的就是HTML代码,如果是JS就是JS代码

post与get的区别

get请求:向服务端获取请求;数据放在URL里,有长度限制;

post请求:向服务端发送请求;数据放在body里,无长度限制;更安全

http接口返回json串:一种通用的数据类型

接口的返回值;

{

"error_code": 0,

"stu_info": [

{

"id": 1,

"name": "灏忛粦",

"sex": 男",

"age": 18,

"addr": "北京市海淀区",

"grade": "三年二班",

"phone": "18612532941",

"gold": 11212

}

]

}

测试接口调用演练

 get接口

  • 请求URL  http://api.nnzhp.cn/api/user/stu_info
  • 请求方式  get
  • 请求参数

                       参数名        必选     类型     说明

                       stu_name    是       string    学生姓名

1、直接用浏览器调用

2、使用postman 调用

可以看到postman选择get方法的时候,body是禁用状态,get方法的http接口请求,一般数据都放到URL中。

返回的方式同样也是json串的形式;

 3、使用jmeter进行get方法的调用测试

创建线程组

添加HTTP请求

输入域名、URL、选择请求方法、添加key

添加查看结果树

执行接口

可以在查看结果树中查看执行结果及返回数据

post 请求接口

登录接口

  • 请求URL  http://api.nnzhp.cn/api/user/login
  • 请求方式    post
  • 请求参数  参数为key-value形式

                       参数名        必选     类型     说明

                       username    是       string    用户名

                       passwd        是        string   密码

     

       登陆用户名:niuhanyang

       密码:aA123456

返回参数说明

                      参数名         类型   说明

                       error_code  int       错误编码,0为操作成功

                       login_info   object   登录对象信息

                       userId        int        用户id

                       sign           string     签名

                       login_time  string  登录时间

 1、postman 进行调用

post方法的参数是放在body中的,可以看到参数放到URL中是无效的

把参数放到body中在进行提交

放到body中,以key-value的形式进行传参,返回json串的形式,参照返回参数说明,可以看到登陆成功。

2、用jmeter 进行调用测试

打开jmeter ->添加->threads->线程组

 

 在线程组中添加->sampler->HTTP请求

 

 输入域名、URL、选择方法为post 、输入参数

执行并查看结果返回值

添加学生信息接口

  • 请求URL:http://api.nnzhp.cn/api/user/add_stu
  • 请求方式  post 
  • 参数 ,入参是json类型

                        参数名        必选     类型     说明

                       name           是       string    学生姓名

                       grade           是        string   班级

                      phone           是      string    电话

                      sex               否      string    性别,如果不传,默认为男

                       age               否    string    年龄 ,不传默认为18

                       add              否     string   地址,如果不传默认为北京市昌平区

返回参数说明

                       参数名         类型   说明

                       error_code  int       错误编码,1000为操作成功

                       msg            string   提示信息

如上述描述,入参形式为json 的方式,则使用key-value的形式进行传参就不行了,如下:

现在我们用正确的入参方式进行调用

1、postman调用

在postman中,选择方法为post,输入URL地址,在body中选择raw ,输入json串格式的参数

2、使用jmeter调用接口

我们下面看一下jmeter如何进行调用

创建一个http请求,输入域名、路径、方法为post、在body data中输入json ,然后执行

可以在查看结果树中的请求项中查看请求报文内容

在响应数据中查看响应结果,执行成功

学生金币充值

  • 请求URL:http://api.nnzhp.cn/api/user/gold_add
  • 请求方式  post 
  • 参数 ,

    该接口有权限验证,需要admin用户才可以做操作,需要添加cookie

    cookie中key为登录的用户名,value从登录接口中获取,登陆成功之后会返回sign

                        参数名        必选     类型     说明

                       stu_id           是       int    学生id

                       gold           是        int     金币数量

返回参数说明

                       参数名         类型   说明

                       error_code  int       错误编码,0为操作成功

                       msg            string   提示信息

如上述描述,入参形式需要添加cookie 

1、postman进行调用,添加cookie的方式

cookie说的直白点就是保存在用户浏览器端的一个键值对

提到cookie肯定不能少了session,什么是session呢,session就是保存在服务器的一个键值对,一般session都是存在缓存里面,因为要经常用到,要提升性能的话直接把session放到内存里面。

首先我们通过“获取学生信息”接口查看到学生的id信息,然后通过“登录”接口,获取签名的值如下:以test 用户为例:

查询出ID=2341

sign值为:cd2b43f1688e472e3a516b5a2c6831e8

现在为学生添加金币

2、用jmeter进行接口的调用

用jmeter测试带cookie的http请求需要添加http cookie管理器

我们先看一下添加cookie的场合进行执行

可以看到没有添加cookie的场合,执行不成功

现在我们添加httpcookie管理器,右键添加->配置元件->HTTP cookie管理器

添加cookie的值

执行,查看请求的数据

 获取所有学生信息

  • 请求URL:http://api.nnzhp.cn/api/user/all_stu
  • 请求方式  get
  • 参数 ,需要添加header信息,key为Referer value 为http://api.nnzhp.cn/

                    

返回参数说明

                       参数名         类型   说明

                       error_code  int       错误编码,0为操作成功

                       all_stu          list      提示信息

1、我们看一下不添加header,直接用浏览器地址栏访问的结果

如下,不添加header访问,提示来路不正确

 

 2、用postman进行调用,添加header信息,并进行调用

执行,结果显示所有的学生用户信息

3、用jmeter进行调用测试

添加http请求

右键添加->配置元件->http信息头管理器

执行结果成功,显示学生信息

 

文件上传类型

  • 请求URL:http://api.nnzhp.cn/api/file/file_upload
  • 请求方式  post 
  • 参数

                        参数名        必选     类型     说明

                       file              是        file       文件     

返回参数说明

                       参数名         类型   说明

                       error_code  int       错误编码,0为操作成功

                       msg            string   提示信息

1、用postman进行调用,输入URL地址,key的类型选择file类型

选择文件进行上传

执行操作成功

 2、使用jmeter进行调用

执行,操作成功

写在最后

如果你觉得文章还不错,请大家 点赞、分享、留言 下,因为这将是我持续输出更多优质文章的最强动力!

看到这篇文章的人有觉得我的理解有误的地方,也欢迎评论和探讨~

你也可以加入下方的的群去和同行大神交流切磋

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/195736.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

关于获取两数相除求百分比,浮点数或整数-相乘,相除-但余数需保留小数点不能有doble继承,应该使用BigDecimal进行四舍五入

int total 3; int finished 2; 类似于这种两数向除---需要将其转化为BigDecimal&#xff0c;利用其函数的方法相除&#xff0c;并用 BigDecimal类型接收结果。 int total 3 int finished 2; BigDecimal result BigDecimal.valueOf(finished).divide(BigDecimal.valueO…

function_url构造函数

目录URL构造函数作用语法返回值构造函数的特定方法URL.createObjectURLURL.revokeObjectURL应用[1]获取url携带参数[2]创建本地url[3]为每个文件生成一个uuidURL构造函数 作用 创建并返回指定url对象 语法 new URL(url,[base])url(必填): 若是rl 是相对 URL&#xff0c;则会…

操作系统简介

坚持看完&#xff0c;结尾有思维导图总结 这里写目录标题概述冯诺依曼体系结构操作系统简介总结概述 本文先介绍冯诺依曼体系结构&#xff0c;并且举了几个例子进行理解&#xff0c;随后粗略介绍操作系统功能&#xff0c;并且为进程的理解打下基础 冯诺依曼体系结构 首先上一…

Python入门第一课——Python起步安装、Sublime Text安装教程,环境配置

Python入门第一课——Python起步安装、Sublime Text文本编辑器1 Python简介2 Python安装2.1 下载安装包2.2 开始安装Python3 Python起步——安装编辑器Sublime Text3.1 Sublime Text简介3.2 Sublime Text安装安装包打开文件创建快捷方式3.3 打开sublime text3.4 第一个程序&…

LeetCode 刷题系列 -- 110. 平衡二叉树

给定一个二叉树&#xff0c;判断它是否是高度平衡的二叉树。本题中&#xff0c;一棵高度平衡二叉树定义为&#xff1a;一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1 。示例 1&#xff1a;输入&#xff1a;root [3,9,20,null,null,15,7]输出&#xff1a;true示例…

Lombok

Lombok概述Lombok插件安装Lombok依赖注解SetterGetterToStringEqualsAndHashCodeNonNull构造方法相关注解NoArgsConstructorRequiredArgsConstructorAllArgsConstructorDataBuilderLogCleanupSneakyThrows概述 LomBok可以通过注解&#xff0c;帮助开发人员消除JAVA中尤其是POJ…

【目标检测论文解读复现NO.30】基于改进YOLO v5的宁夏草原蝗虫识别模型研究

前言此前出了目标改进算法专栏&#xff0c;但是对于应用于什么场景&#xff0c;需要什么改进方法对应与自己的应用场景有效果&#xff0c;并且多少改进点能发什么水平的文章&#xff0c;为解决大家的困惑&#xff0c;此系列文章旨在给大家解读最新目标检测算法论文&#xff0c;…

【FPGA】FPGA实现SPI协议读写FLASH(二)----- SPI接口驱动模块设计

SPI接口驱动模块设计一、功能分析二、状态机设计三、信号说明四、代码实现五、仿真测试写在前面&#xff1a;FPGA实现SPI协议读写FLASH系列相关文章&#xff1a;SPI通信协议【FPGA】FPGA实现SPI协议读写FLASH&#xff08;一&#xff09;----- M25P16操作概述在上篇文章中对FLAS…

【MyBatis】框架特点,ORM思想,事务管理机制

1. Mybatis概述:1.1 基础知识:SSM三大框架: Spring SpringMVC MyBatis框架其实就是对通用代码的封装, 提前写好一堆接口和类, 在做项目的时候直接引入这些常用的借口和类(引入框架), 基于这些现有的接口和类进行开发, 可以大大提高开发效率.框架一般是以jar包的形式存在的, j…

Qt UDP

UDP是一种是一种轻量级、不可靠、面向数据报的无连接协议。当可靠性不重要时&#xff0c;可以使用它。 QUdpSocket 是 QAbstractSocket 的一个子类&#xff0c;所以拥有QAbstractSocket的各种方法&#xff0c;允许您发送和接收 UDP 数据报。 QAbstractSocket的各种函数已经在上…

【数据结构基础】树 - 前缀树(Trie Tree)

Trie&#xff0c;又称字典树、单词查找树或键树&#xff0c;是一种树形结构&#xff0c;是一种哈希树的变种。典型应用是用于统计&#xff0c;排序和保存大量的字符串&#xff08;但不仅限于字符串&#xff09;&#xff0c;所以经常被搜索引擎系统用于文本词频统计。它的优点是…

Zabbix灾难备份多种方式分享(建议收藏)

感谢本文译者田川 ! 欢迎更多资深用户翻译原厂博文&#xff08;https://blog.zabbix.com/&#xff09;&#xff01; 田川 | 宏时数据技术工程师 Zabbix 5.0中文手册官方译者 2017-2018年Zabbix中国峰会演讲嘉宾 8年监控领域实施和管理工作经验 ►在这篇博文中&#xff…

mysql关系型数据库免安装包下载以及安装教程

对于大部分技算计技术相关的初学者而言&#xff0c;mysql关系型数据库无可厚非是最适合初学者学习使用的&#xff0c;但是对于安装mysql数据库来说可能就不是特别明确&#xff0c;到底如何安装。互联网上比较多都是官网的.msi安装包&#xff0c;自带mysql客户端和一些其他关联程…

2023年“华数杯”国际大学生数学建模A题赛题发布

MCM问题一&#xff1a;雅鲁藏布江综合发展规划背景雅鲁藏布江是中国最长的高原河流&#xff0c;也是世界上最高的高原河流之一。它起源 于喜马拉雅山脉的北部山麓&#xff0c;从西向东流&#xff0c;然后转向南部&#xff0c;流向印度。中国的雅鲁 藏布江全长2057公里&#xff…

诺依集成mybatis换成mybatis-plus(完美解决)

总结分析&#xff1a;问题1&#xff1a;mybatis与mybatis-plus能否共存&#xff1f;经过将近一天的搜索发现&#xff0c;mybatis与mybatis-plus的sql工厂不通&#xff0c;mybatis是SqlSessionFactoryBean&#xff0c;而mybatis-plus是MybatisSqlSessionFactoryBean&#xff0c;…

python下载油管、B站视频的方法

这是2023年的第一篇博客。但绝不是最后一篇。 今天的博客记录篇娱乐向。 今夜想让wh听我听的歌。 利用python的you-get实现听歌自由。&#xff08;虽然有音乐会员&#xff09; FFmpeg的下载与安装。 FFmpeg的下载地址 选择对应型号的操作系统。 本次演示采用windows操作系统…

ChatGPT的调用API被提前发现了?

前言 近日&#xff0c;有消息称ChatGPT的API已经被提前发现。作为一名技术爱好者&#xff0c;我决定亲自试试看。经过几次尝试&#xff0c;我发现这确实是真的&#xff01;&#xff08;不过OpenAI确实动作很快&#xff0c;如今已经修补了大部分的模型&#xff09;。 1. 如何调…

使用 4EVERLAND 将您的 Damus 配置文件存储到 IPFS/Arweave

真正控制您的社交网络&#xff01; 挑战Twitter的去中心化社交应用Damus已登陆App Store。它是第一个使用名为Nostr的开放式去中心化社交网络协议的移动应用程序&#xff0c;该协议由 Twitter 联合创始人 Jack Dorsey 资助&#xff0c;该协议基于加密密钥对。 Damus 的出现是…

001. SQL慢查询排查(字段类型不一致)

目录一&#xff1a;背景二&#xff1a;排查过程2.1: SQL慢查询定位2.2: Python层面分析将String翻译成Int类型的原因2.3: Python进行SQL执行时间检测出现的问题三&#xff1a;总结一&#xff1a;背景 新的业务上线后&#xff0c; 合作部门发现我们引擎执行完&#xff0c; 回调…

从用户到专家-Zabbix培训【优惠】通道开启

Q&#xff1a;我从2.0开始使用Zabbix&#xff0c;还用得着参加培训&#xff1f; A&#xff1a;相信我&#xff0c;多得是你不知道的事&#xff01; Zabbix与时俱进&#xff0c;6.0新增了很多功能&#xff0c;如何快速系统掌握&#xff1f; 培训内容是Zabbix原厂设计的系统课…