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