首页 > 解决方案 > zeep 客户端异常。zeep.transport.session.cookies 不传播

问题描述

我试图创建一个 zeep 客户端并通过两种方法使用它。

1)我试图将所有内容都保存在一个模块中。我创建了 zeep 客户端对象,它在使用有效负载时工作正常。2) 我创建了一个方法,它返回一个 wsdl 的 zeep 客户端对象。我尝试将这种方式用作方法 1)但出现以下错误。zeep.exception.Fault :无法验证传入消息。未找到有效凭据 有人可以告诉我这里缺少什么导致此错误。我的第二种方法是这样的。\\ def zeepClient(wsdl): ## 在这里执行所有操作并返回 zeep 客户端对象。return client #Now 在另一个模块中,我确实调用了上述方法,例如 Client=othermodule.zeepClient(mywsdl) Payload={my payload} Client.service.myservice(**Payload) \\

如果我这样做,我会得到上述错误。但是如果我上面的代码和我的 zeepClient 方法都在同一个地方。我没有收到错误。没有把握 。Returned Client 对象缺少什么。

标签: pythonpython-3.xzeep

解决方案


您必须向会话提供凭据,然后像这里一样发出请求

from requests import Session
from requests.auth import HTTPBasicAuth  # or HTTPDigestAuth, or OAuth1, etc.
from zeep import Client
from zeep.transports import Transport

session = Session()
session.auth = HTTPBasicAuth(user, password)
client = Client('http://my-endpoint.com/production.svc?wsdl',
    transport=Transport(session=session))

推荐阅读