You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python调用公共Web服务?以指定SOAP服务为例

Python 访问SOAP公共Web服务指南

可行性说明

完全可行,你提到的是标准的SOAP Web服务,Python通过专门的SOAP库可以轻松解析WSDL、调用所有公开方法并获取响应。

步骤1:安装依赖库

使用zeep库(目前Python生态中处理SOAP最便捷的工具之一),执行安装命令:

pip install zeep

步骤2:初始化SOAP客户端并解析WSDL

创建Python脚本,导入zeep并指定目标WSDL地址,客户端会自动解析服务的所有方法和参数:

from zeep import Client

# 目标WSDL地址
wsdl_url = "http://webservices.oorsprong.org/websamples.countryinfo/CountryInfoService.wso?WSDL"

# 创建SOAP客户端
client = Client(wsdl_url)

步骤3:查看服务的全部可用方法

如果需要确认服务提供的所有方法,可以通过以下两种方式查看:

  • 方式1:直接打印客户端的service属性,会列出所有可调用的方法:
print("所有可用方法:", dir(client.service))
  • 方式2:更详细地查看每个方法的参数和返回值定义:
for service in client.wsdl.services.values():
    for port in service.ports.values():
        operations = sorted(port.operations.keys())
        print(f"端口{port.name}下的方法:{operations}")

步骤4:调用具体方法(以查询首都为例)

以你提到的GetCapitalCity方法为例,传入ISO国家代码(需大写)即可获取对应首都:

# 调用GetCapitalCity方法,传入伊朗的ISO代码'IR'
capital = client.service.GetCapitalCity('IR')
print("伊朗的首都是:", capital)  # 输出:德黑兰

# 再试一个示例,比如中国'CN'
capital_cn = client.service.GetCapitalCity('CN')
print("中国的首都是:", capital_cn)  # 输出:北京

注意事项

  • 确保网络正常,能访问目标WSDL地址;
  • 方法名和参数必须严格匹配WSDL定义(可通过步骤3的方式确认);
  • ISO国家代码需使用大写形式,否则可能返回错误或空值;
  • 如果调用其他方法,比如GetCountryName、GetCurrencyCode等,直接按照类似方式传入对应参数即可。

内容的提问来源于stack exchange,提问作者Mamad_Knight

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 15:15:59