Python Zeep - 多个 WSDL 文件
Python Zeep - Multiple WSDL Files
我有两个单独的 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')
我有两个单独的 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')