У меня возникла та же проблема при использовании заглушки соединения SUDS.Я всегда получал Exception: (404, u'Not Found')
Все остальное было настроено нормально, поэтому я просто начал угадывать и пытаться.
Я не знаю, вызвали ли некоторые SOAP-серверы это или тот факт, что мне нужно установить местоположение вручную.Решение состояло в том, чтобы добавить название службы к URL-адресу местоположения.Таким образом, вам нужно создать несколько заглушек для каждого отдельного используемого сервиса, но он работает:
servicename = "TestService"
client = Client(
url="foobar.wsdl",
location = "http://soap.example.com/foobar/" + servicename ,
)
result = client[servicename]["TestServicePort"].TestServiceFunction()
print(result)
Это не предполагаемое поведение, потому что SUDS должен это делать сам (я думаю), но это был единственный вариантчтобы пройти эту ошибку.Возможно, это вызвано тем, что мне нужно было указать атрибут Client.location
вручную, и поэтому SUDS больше не меняет его независимо от того, какую службу мне нужно вызывать.
Поскольку мне потребовалось некоторое время, чтобы выяснить,Бьюсь об заклад, это помогает бедняге: D
С уважением, Майкл