Hi,
I'm trying to connect to the SOAP interface of an innovaphone system.
I'm using the following code to connect to the WSDL file:
from suds.client import Client
from suds.xsd.doctor import ImportDoctor, Import
from suds.transport.http import HttpAuthenticated
imp =
Import('http://schemas.xmlsoap.org/soap/encoding/')
imp.filter.add('http://innovaphone.com/pbx')
imp.filter.add('http://innovaphone.com/binding')
d = ImportDoctor(imp)
url = 'http://localhost/pbx800.wsdl'
t = HttpAuthenticated(username='****', password='****')
client = Client(url, transport=t, doctor=d)
print client
print client.service.Version()
The WSDL file I'm using is the same as at:
http://www.innovaphone.com/wsdl/pbx800.wsdl
With the 5th to last line (soap:address location) edited to point to our
PBX server.
running the above script results in the following error:
File "sudstest.py", line 16, in <module>
print client.service.Version()
File
"/usr/lib/python2.6/site-packages/suds-0.4-py2.6.egg/suds/client.py", line
542, in __call__
return client.invoke(args, kwargs)
File
"/usr/lib/python2.6/site-packages/suds-0.4-py2.6.egg/suds/client.py", line
602, in invoke
result = self.send(soapenv)
File
"/usr/lib/python2.6/site-packages/suds-0.4-py2.6.egg/suds/client.py", line
643, in send
result = self.succeeded(binding, reply.message)
File
"/usr/lib/python2.6/site-packages/suds-0.4-py2.6.egg/suds/client.py", line
678, in succeeded
reply, result = binding.get_reply(self.method, reply)
File
"/usr/lib/python2.6/site-packages/suds-0.4-py2.6.egg/suds/bindings/binding.py",
line 149, in get_reply
soapenv.promotePrefixes()
AttributeError: 'NoneType' object has no attribute 'promotePrefixes'
When I quote out the "print client.service.Version()" line, it displays all
the methods from the WSDL file, but when I leave it uncommented, the "print
client" line doesn't get printed before the error comes up.
Any idea what's causing this error?
I'm using python version 2.6.6 and suds version 0.4
Thanks in advance!
-Remy