SOAP API 获取 Cookie

num*_*soz 0 python soap wsdl soapui zeep

我正在使用 SOAP API 来获取带有应该返回的 cookie 的身份验证密钥。

from zeep import Client
client = Client("AuthenticationService.xml")
result = client.service.ValidateUser(username, password, "")
result
Run Code Online (Sandbox Code Playgroud)

然而,结果是,我得到了 True 布尔值,但没有包含身份验证密钥的 Cookie。

从下图中,您可以看到使用 SoapUI 的同一请求返回一个 cookie。我想知道如何在 Python 中做到这一点。

SoapUI 软件响应

小智 5

为了能够处理cookie,我们必须使用requests.Sessionfor transport

因此,一个简单的用例对您来说如下所示:

from zeep import Client
from requests import Session
from zeep.transports import Transport

session = Session()
# disable TLS verification
session.verify = False

transport = Transport(session=session)

client = Client("AuthenticationService.xml", transport=transport)

result = client.service.ValidateUser(username, password, "")

# then check cookie
client.transport.session.cookies
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助。