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

如何通过Zeep从SOAP API的第二个服务获取数据

使用Zeep访问SOAP API的第二个服务

可以按照以下步骤操作:

  1. 加载WSDL并查看所有服务
    先通过Zeep解析WSDL,列出所有可用的服务和端口,确认第二个目标服务的名称、端口及地址:

    from zeep import Client
    
    # 替换为你的API WSDL路径/URL
    client = Client('http://your-api-url.wsdl')
    
    # 遍历打印所有服务信息
    for service in client.wsdl.services.values():
        print(f"服务名称: {service.name}")
        for port in service.ports.values():
            print(f"  端口: {port.name}, 地址: {port.binding.address}")
    
  2. 绑定目标服务
    根据上面获取到的第二个服务的名称、端口,创建对应的服务代理:

    • 方法一:通过create_service指定服务的QName和地址
      # 替换为目标服务的命名空间、服务名称,以及对应的endpoint地址
      target_service = client.create_service(
          '{http://your-api-namespace.com/}TargetServiceName',
          'http://target-service-endpoint-url.com'
      )
      
    • 方法二:通过bind直接指定服务名和端口名
      # 替换为你的目标服务名称和端口名称
      target_service = client.bind('TargetServiceName', 'TargetServicePort')
      
  3. 调用目标服务的方法
    拿到服务代理后,直接调用对应的API方法即可:

    # 替换为实际的方法名和参数
    response = target_service.GetTargetData(param1='value1', param2='value2')
    

注意事项

  • 确保WSDL中的命名空间、服务名称、端口名称完全匹配,这些信息可以从WSDL文件的<service>标签中找到,也可以通过第一步的打印代码获取。
  • 如果遇到权限或地址错误,检查目标服务的endpoint地址是否正确,以及API调用所需的认证信息是否配置齐全。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 07:02:33