擅长:python、mysql、java
<p>我在使用SUDS连接存根时也遇到了同样的问题。我总是得到<code>Exception: (404, u'Not Found')</code>其他一切都设置得很好,所以我只是开始猜测和尝试。在</p>
<p>我不知道是不是某些SOAP服务器导致了这个问题,或者我需要手动设置位置。解决方案是将服务的名称附加到位置URL。因此,您需要为使用的每个不同的服务创建多个存根,但它可以工作:</p>
<pre><code>servicename = "TestService"
client = Client(
url="foobar.wsdl",
location = "http://soap.example.com/foobar/" + servicename ,
)
result = client[servicename]["TestServicePort"].TestServiceFunction()
print(result)
</code></pre>
<p>这不是有意的行为,因为肥皂水本身应该这样做(我认为),但这是唯一的选择来克服这个错误。可能是因为我需要手动指定<code>Client.location</code>属性,所以无论我需要调用什么服务,SUDS都不会再更改它。在</p>
<p>因为我花了一段时间才发现,我敢打赌这对一个可怜的家伙有帮助:D</p>
<p>谨致问候,
迈克尔</p>