在接触 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 接口的说明书,你可以把它当成“接口字典 + 示例文档 + 自动生成工具”的合集。