Python Zeep-多个WSDL文件



我有两个单独的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,但我认为我使用得不正确。

谢谢!

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

我预计您还需要扩展代码以使用相同的请求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')

最新更新