【问题标题】:Python Zeep - Multiple WSDL FilesPython Zeep - 多个 WSDL 文件
【发布时间】:2018-11-07 16:51:16
【问题描述】:

我有两个单独的 WSDL 文件提供给我用于与服务交互,一个 WSDL 文件只提供登录和生成访问令牌的方法。另一个 WSDL 文件提供了与系统实际交互的方法。

如果我使用要登录的第一个 WSDL 文件实例化 zeep SOAP 客户端,我是否需要为下一个 WSDL 文件重新实例化客户端,或者我可以简单地告诉它查看下一个 WSDL 文件吗?

from zeep import Client

client = Client("https://url.service.com/Session?wsdl")
token = client.service.login(username, password)

client = Client("https://url.service.com/Object?wsdl")
client.service.find(token, 'filter')

我尝试使用 create_service,但我认为我没有正确使用它。

谢谢!

【问题讨论】:

    标签: python python-3.x zeep


    【解决方案1】:

    您需要重新实例化第二个客户端。

    我希望您还需要扩展您的代码以使用相同的请求 Session 和 Zeeps Transport。

    from requests import Session
    from zeep import Client
    from zeep.transports import Transport
    
    transport = Transport(session=Session())
    
    client = Client("https://url.service.com/Session?wsdl", transport=transport)
    token = client.service.login(username, password)
    
    client = Client("https://url.service.com/Object?wsdl", transport=transport)
    client.service.find(token, 'filter')
    

    【讨论】:

    • 我认为这就是答案(这就是我一直在做的事情)。在我的特殊情况下,我不必使用会话,因为我在每次调用时将令牌传递回 Web 服务。我将编辑答案以反映这一点。
    猜你喜欢
    • 1970-01-01
    • 2018-10-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多