尝试登录出现 SUDS 错误的 ATWS
Trying to login to a ATWS with SUDS error
我正在尝试使用 suds 登录 ATWS 服务,但我不断收到以下错误:
Traceback (most recent call last):
File "/Users/AAAA/Documents/Aptana/AutotaskUpdateTicketEstimatedHours/Main.py", line 38, in <module>
handler = ConnectATWS()
File "/Users/AAAA/Documents/Aptana/AutotaskUpdateTicketEstimatedHours/Main.py", line 31, in __init__
client = Client(self.url)
File "/Library/Python/2.7/site-packages/suds/client.py", line 112, in __init__
self.wsdl = reader.open(url)
File "/Library/Python/2.7/site-packages/suds/reader.py", line 152, in open
d = self.fn(url, self.options)
File "/Library/Python/2.7/site-packages/suds/wsdl.py", line 136, in __init__
d = reader.open(url)
File "/Library/Python/2.7/site-packages/suds/reader.py", line 79, in open
d = self.download(url)
File "/Library/Python/2.7/site-packages/suds/reader.py", line 95, in download
fp = self.options.transport.open(Request(url))
File "/Library/Python/2.7/site-packages/suds/transport/https.py", line 60, in open
return HttpTransport.open(self, request)
File "/Library/Python/2.7/site-packages/suds/transport/http.py", line 64, in open
raise TransportError(str(e), e.code, e.fp)
suds.transport.TransportError: HTTP Error 401: Unauthorized
我正在输入正确的登录信息,但我一直收到未经授权的错误。
这是我的代码:
class ConnectATWS():
def __init__(self):
app_config = Init()
self.username = app_config.data["Username"]
self.password = app_config.data["Password"]
self.login_id = app_config.data["LoginID"]
self.url = app_config.data["AutotaskUpdateTicketEstimatedHours_net_autotask_webservices5_ATWS"]
client = Client(self.url)
login_res = client.service.Login(self.login_id, self.password)
我没有正确使用 SUDS 吗?
像这样认证
client = Client(self.url)
login_res = client.service.Login(self.login_id, self.password)
仅当网络服务提供需要调用以进行身份验证的 Login(user, password)
方法时才有效。
在这种情况下,当您尝试访问服务 wsdl 时(在构建 Client
时),您已经收到 401 响应,这表明基于 http 响应使用了不同的身份验证方法可能是 http 基本身份验证。所以认证不是由服务完成的,而是在传输层。
要将 http basic auth 与 suds 一起使用很简单,只需将 username
和 password
关键字参数传递给 Client
:
client = Client(self.url, username=self.login_id, password=self.password)
我正在尝试使用 suds 登录 ATWS 服务,但我不断收到以下错误:
Traceback (most recent call last):
File "/Users/AAAA/Documents/Aptana/AutotaskUpdateTicketEstimatedHours/Main.py", line 38, in <module>
handler = ConnectATWS()
File "/Users/AAAA/Documents/Aptana/AutotaskUpdateTicketEstimatedHours/Main.py", line 31, in __init__
client = Client(self.url)
File "/Library/Python/2.7/site-packages/suds/client.py", line 112, in __init__
self.wsdl = reader.open(url)
File "/Library/Python/2.7/site-packages/suds/reader.py", line 152, in open
d = self.fn(url, self.options)
File "/Library/Python/2.7/site-packages/suds/wsdl.py", line 136, in __init__
d = reader.open(url)
File "/Library/Python/2.7/site-packages/suds/reader.py", line 79, in open
d = self.download(url)
File "/Library/Python/2.7/site-packages/suds/reader.py", line 95, in download
fp = self.options.transport.open(Request(url))
File "/Library/Python/2.7/site-packages/suds/transport/https.py", line 60, in open
return HttpTransport.open(self, request)
File "/Library/Python/2.7/site-packages/suds/transport/http.py", line 64, in open
raise TransportError(str(e), e.code, e.fp)
suds.transport.TransportError: HTTP Error 401: Unauthorized
我正在输入正确的登录信息,但我一直收到未经授权的错误。
这是我的代码:
class ConnectATWS():
def __init__(self):
app_config = Init()
self.username = app_config.data["Username"]
self.password = app_config.data["Password"]
self.login_id = app_config.data["LoginID"]
self.url = app_config.data["AutotaskUpdateTicketEstimatedHours_net_autotask_webservices5_ATWS"]
client = Client(self.url)
login_res = client.service.Login(self.login_id, self.password)
我没有正确使用 SUDS 吗?
像这样认证
client = Client(self.url)
login_res = client.service.Login(self.login_id, self.password)
仅当网络服务提供需要调用以进行身份验证的 Login(user, password)
方法时才有效。
在这种情况下,当您尝试访问服务 wsdl 时(在构建 Client
时),您已经收到 401 响应,这表明基于 http 响应使用了不同的身份验证方法可能是 http 基本身份验证。所以认证不是由服务完成的,而是在传输层。
要将 http basic auth 与 suds 一起使用很简单,只需将 username
和 password
关键字参数传递给 Client
:
client = Client(self.url, username=self.login_id, password=self.password)