我在使用Python和SOAP时遇到问题。 我需要在Python中基于SOAP创建一个Web服务。 我读到可以使用soaplib,suds和ZSI之类的库。 我使用soaplib创建了一个Hello World Web服务,如文档(http://trac.optio.webfactional.com/wiki/HelloWorld)中所示。 问题是我不能为使用除soaplib库之外的Web服务创建客户端。 我想使用Python中的suds库来做客户端应用程序。

您是否设法用Python开发了一个应用程序(例如,使用suds库),并使用了在Python中使用soaplib创建的SOAP Web服务?

是的,我已经使用soaplib制作了一个Web服务,可以从suds(以及许多其他客户端)中使用它。 如果没有有关什么问题的更多信息,您将很难说其他任何事情。

很高兴听到:)下面是使用suds的代码,我的问题是我不知道应该使用哪个URL。 我从suds.client import得到了类似503 snd 504的响应。client client client = Client(URL)print client

您如何提供服务? soaplib生成一个WSGI对象,该对象需要由Web服务器提供服务。 如果您遵循的helloworld示例已链接至,则说明您正在使用CherryPy(纯python网络服务器)将服务托管在您自己的计算机上。 在示例中,端口为7789(但您可以使用任何您喜欢的端口)。 因此,如果使用示例,则应首先启动运行cherrypy的脚本-该脚本应保持运行状态,而不返回到提示。 运行该服务时,您应该可以通过http://localhost:7789/wsdl访问服务-您可以将该地址放入Web浏览器中以查看其是否正常运行。 只要URL以wsdl结尾,Soaplib就会返回wsdl-实际上,您可以执行http://localhost:7789/anythingherewsdl。

很有帮助!非常感谢您的帮助。

首先,感谢您的帮助。我不知道为什么,但是就我而言,问题似乎出在我的Web代理上。当我使用下面提供的代码时,我从suds.client import收到HTTP错误503:服务不可用客户端client = Client(" localhost:7789 / wsdl")打印客户端当我关闭该Web代理时,该简单代码成功运行了!希望我找到了一个介绍此问题的解决方案的网页。

您无需说明正在使用什么操作系统或如何配置代理-但在大多数情况下,您的代理配置屏幕中会出现诸如" No proxy for:"或" bypass proxy for:"的设置,您应将localhost放入那里。 Localhost是一个特殊的回送地址,它指向您自己的计算机,因此,如果通过代理放置它-它指向代理所在的计算机。

你明白了。我找到一个选项"排除简单主机名"并选择了它。现在,一切正常。感谢您的提示。

您是否在问是否可以使用(消费)使用非soaplib构建的SOAP Web服务? 那当然是可能的。 Suds是个好主意。

好的,但是我不知道该怎么做。我在寻找一个教程或一个简单的示例,该示例显示了如何使用suds来使用soaplib创建的soap Web服务,但是我找不到它。

首先查看fedorahosted.org/suds/wiki/Documentation。"基本用法"下面的内容可能会有所帮助。

@jlafay请特别注意"不鼓励进行细微的修改"

@Shadow向导,已指出。对于那个很抱歉。

@jlafay已经完成了什么,只是避免仅针对较小的修改就碰到旧问题。 :)