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')
这就解决了问题。泡沫没什么不好的。
我在 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')
这就解决了问题。泡沫没什么不好的。