【发布时间】:2014-08-01 15:39:57
【问题描述】:
我似乎无法让 SUDS 下载需要基本身份验证凭据的 WSDL。我的代码很简单:
wsdl_url = 'https://example.com/ChangeRequest.do?WSDL'
self.client = Client(wsdl_url, username=username, password=password)
我也试过了:
from suds.transport.https import HttpAuthenticated
wsdl_url = 'https://example.com/ChangeRequest.do?WSDL'
credentials = dict(username=username, password=password)
t = HttpAuthenticated(**credentials)
self.client = Client(url=wsdl_url, transport=t)
在这两种情况下,服务都会返回 403 Forbidden 错误。我可以进入 http.py 中的 SUDS 代码并将这一行添加到调用中:
u2request.add_header('Authorization','Basic xxxxxxxxxxxxxxxxxxxx')
这行得通。下载 WSDL 时让 SUDS 传递我的凭据,我做错了什么?
注意:我尝试使用 Chrome 的 Postman 插件和 SoapUI 直接连接到 WSDL,并且该服务也可以正常工作。所以我知道凭据是正确的。
【问题讨论】:
-
你尝试过这里的答案吗?:stackoverflow.com/questions/11742494/…