python 网络服务客户端使用 suds 时出错

Error in python webservice client using suds

我在 windows 和 linux 中使用 python 2.7 和 suds 0.4,在这两种情况下,我在调用 Web 服务的方法时遇到相同的错误:

Traceback (most recent call last):
File "wsclient.py", line 23, in <module>
client.service.Echo()
File "build\bdist.win32\egg\suds\client.py", line 542, in __call__
File "build\bdist.win32\egg\suds\client.py", line 602, in invoke
File "build\bdist.win32\egg\suds\client.py", line 643, in send
File "build\bdist.win32\egg\suds\client.py", line 678, in succeeded
File "build\bdist.win32\egg\suds\bindings\binding.py", line 149, in get_reply
AttributeError: 'NoneType' object has no attribute 'promotePrefixes'

我的代码真的很简单:

import suds.bindings
suds.bindings.binding.envns = ('SOAP-ENV', 'http://www.w3.org/2003/05/soap-envelope')

from suds.client import Client

url = 'http://servicios.publipayments.com/ServicioDW.svc?wsdl'
client = Client(url)
print client
client.service.Echo()

如您所见,我已经按照 suds 作者的建议做了 here and also did the logging in here。但是结果是一样的

任何想法将不胜感激。

此致。

我对 Web 服务的理解不够好,服务实现使用 http 来公开服务端点的 wsdl 和 https。

因此,在服务作者的有用提示之后,我将客户端声明为:

client = Client('http://someUrl?wsdl', 
                location='https://someUrl/Service.svc')

这就解决了问题。泡沫没什么不好的。