web-services - python suds错误"'NoneType'object has no attribute'promotePrefixes'"

  显示原文与译文双语对照的内容

我有一个 ASP.NET web服务运行在 Windows 7盒子上。 我有两个Linux框( 12.04 ),我试图用 python 2.7.3和 Suds 0.4来打击web服务器。 我正在尝试执行的脚本如下所示:


from suds import client
from suds.transport.https import WindowsHttpAuthenticated
url ="https://webserver.mydomain.com/webservice/services.asmx?WSDL"
ntlm = WindowsHttpAuthenticated(username ="user", password ="pwd")
c = client.Client(url, transport = ntlm)
resp = c.service.GetData()

在我的一个Linux框中,这个代码执行完美,resp 将包含从web服务返回的预期数据。 在另一个Linux框中,我得到以下错误消息:


Traceback (most recent call last):
 File"<stdin>", line 1, in <module>
 File"/var/www/dev/local/lib/python2.7/site-packages/suds/client.py", line 542, in __call__
 return client.invoke(args, kwargs)
 File"/var/www/dev/local/lib/python2.7/site-packages/suds/client.py", line 602, in invoke
 result = self.send(soapenv)
 File"/var/www/dev/local/lib/python2.7/site-packages/suds/client.py", line 643, in send
 result = self.succeeded(binding, reply.message)
 File"/var/www/dev/local/lib/python2.7/site-packages/suds/client.py", line 678, in succeeded
 reply, result = binding.get_reply(self.method, reply)
 File"/var/www/dev/local/lib/python2.7/site-packages/suds/bindings/binding.py", line 149, in get_reply
 soapenv.promotePrefixes()
AttributeError: 'NoneType' object has no attribute 'promotePrefixes'

我需要一些关于 等等 可能导致这两个机器之间的行为差异的想法。 提前致谢!

时间: 作者:

我添加了一些行来输出额外的日志信息,发现问题与抛出的python 错误无关,而是由于web服务。 以下是我添加到发布的脚本中的代码行:


import logging
logging.basicConfig(level=logging.INFO)
logging.getLogger('suds.client').setLevel(logging.DEBUG)

添加了这些行之后,我的脚本生成以下输出( 部分):


<body>
<div id="header"><h1>Server Error</h1></div>
<div id="content">
 <div class="content-container"><fieldset>
 <h2>403 - Forbidden: Access is denied.</h2>
 <h3>You do not have permission to view this directory or page using the credentials that you supplied.</h3>
 </fieldset></div>
</div>
</body>

从这里我将焦点从客户端转移到服务器,并能够快速识别出( 这跟我原来的问题无关)的问题。

作者:
...