Я немного ударился головой об этом. Я наконец решил проблему, используя следующий синтаксис:
from suds.xsd.doctor import ImportDoctor, Import
url = 'http://somedomain.com/filename.php?wsdl'
imp = Import('http://schemas.xmlsoap.org/soap/encoding/')
imp.filter.add('http://some/namespace/A')
doctor = ImportDoctor(imp)
client = Client(url, doctor=doctor)
Важно, начните с URL. Откройте этот файл в вашем браузере, и он предоставит вам определения wsdl. Убедитесь, что вы ввели правильный URL-адрес и что XML-файл действительно открывается. Также обратите внимание на? Wsdl в конце URL.
Во-вторых, imp = Import('http://schemas.xmlsoap.org/soap/encoding/')
импортирует стандартную схему SOAP.
В-третьих, imp.filter.add('http:somedomain.com/A')
добавит ваше конкретное пространство имен. Вы можете найти это место в пространстве имен, открыв указанный выше URL в url=
и ища раздел <wsdl:import namespace="http://somedomain.com/A"
.
Также обратите внимание на http против https в ваших URL.