在接触 WebService 接口 时,你一定会遇到一种叫 WSDL 的文件。看起来像 XML,充满了各种 message、portType、binding 的标签,很多开发者第一反应是:这是啥?为啥接口不是直接调的,还得看它?

别慌,这篇文章我们会用最简单的语言,让你彻底搞懂:

WSDL 是什么

它的结构组成

它在实际开发中起什么作用

怎么配合工具使用(如 Postman / SoapUI)

一、WSDL 是什么?

WSDL,全称是 Web Services Description Language,即:Web 服务描述语言。

一句话解释:

WSDL 是用来描述 SOAP 接口的说明书,告诉你怎么调用这个接口、用什么参数、返回什么结果。

就像 Swagger 是 REST 接口的文档一样,WSDL 是 SOAP 的官方“说明书”。

二、WSDL 文件长什么样?

WSDL 文件其实是一个 XML 文件,大概结构如下:

别看它标签多,其实可以用一句话总结每个部分的作用:

模块作用说明types定义数据类型(参数结构)message定义每个方法的入参、出参portType把多个 message 组合成接口方法binding指定使用 SOAP 协议、HTTP 协议等service给出服务地址(URL),你要调的地址在这

三、举个完整的例子

以下是一个天气查询的 WSDL 片段,告诉你可以查询天气,入参是城市名,出参是天气数据。

💡 意思是:调用 GetWeather 这个接口时,传一个字符串参数 city,它会返回一个字符串 result。

四、WSDL 的作用

WSDL 的核心价值是:

✅ 标准化接口定义:接口参数、类型、方法全都写死,大家对接统一。

✅ 自动生成代码:可以直接通过 IDE 或工具(如 IntelliJ、VS、SoapUI)一键生成调用代码。

✅ 支持平台无关:不管你用 Java、.NET 还是 PHP,只要看得懂 WSDL 就能调。

✅ 接口自说明:不需要额外写文档,WSDL 就是完整接口规范。

五、开发中怎么用 WSDL?

WSDL 地址一般是这样的:

http://example.com/service?wsdl

你可以在浏览器中打开,看到完整 XML 文件,也可以在 IDE 中导入。

常用方式有:

✅ 使用 SoapUI:

创建新 Project → 填写 WSDL 地址

自动加载接口 → 展示所有可调用的方法

编辑请求 → 发送测试调用

✅ 使用 Postman:

安装 Postman 插件(或使用新版支持的 WSDL 导入)

创建 SOAP 请求

手动粘贴 XML,或参考 WSDL 结构写入

指定请求地址、Header、Content-Type

✅ 使用代码自动生成:

Java 可用 wsimport 工具

.NET 用 Visual Studio 直接添加“服务引用”

Python 可用 zeep 库导入 WSDL

六、WSDL 与 REST 的区别?

项目SOAP(WSDL)REST(Swagger)接口描述文件WSDLOpenAPI (Swagger)数据格式XML(结构严格)JSON(灵活)调用方式自动生成客户端代码curl / axios / fetch 手写应用场景金融、电信、政务、企业对接移动端、Web开发、微服务 API

七、常见问题解答

Q1:我只有一个 wsdl 地址,怎么知道有哪些方法可以调用?

👉 用 SoapUI 打开,或者直接浏览器中查找 标签。

Q2:这个 WSDL 里很多结构嵌套怎么办?

👉 关注 portType → operation → 看它引用了哪些 message → 再看 message 中有哪些参数。

Q3:我不知道怎么构造请求 XML?

👉 WSDL 已定义了格式,SoapUI / Postman / 工具可以自动生成请求模板。

八、总结一句话:

WSDL 就是 SOAP 接口的说明书,你可以把它当成“接口字典 + 示例文档 + 自动生成工具”的合集。