我尝试创建一个zeep客户端,并通过两种方法使用它。
1)我试着把所有的东西都放在一个模块中。我创建了zeep客户端对象,它在使用有效负载时工作得很好。2)我创建了一个返回wsdl的zeep客户端对象的方法。我试着用这种方法作为方法1),但是得到了下面的错误。zeep.exception.Fault :未能对传入消息进行身份验证。找不到有效的凭据,请告诉我这里遗漏了什么导致这个错误。我的第二种方法是这样的。\ def zeepClient(wsdl):##在此处执行所有操作并返回zeep客户端对象。return client #现在在另一个模块中,我确实像这样调用了上面方法: Client=othermodule.zeepClient(mywsdl) Payload={my payload} Client.service.myservice(**Payload) \
如果我这样做,如果上面的代码和我的zeepClient方法都在同一位置,我就会得到error.But以上的代码。我没有收到错误。不确定。返回的客户端对象缺少的内容。
发布于 2019-09-20 20:15:34
您必须向会话提供凭据,然后发出类似于here的请求
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))https://stackoverflow.com/questions/58024965
复制相似问题