Python SOAP 服务器/客户端

1 投票
2 回答
10050 浏览
提问于 2025-04-15 16:07

我在使用Python和SOAP的时候遇到了问题。我需要在Python中创建一个基于SOAP的网络服务。我了解到可以使用一些库,比如soaplib、suds和ZSI。我按照文档的说明,用soaplib创建了一个“你好,世界”的网络服务,具体可以参考这个链接(http://trac.optio.webfactional.com/wiki/HelloWorld)。但是,我遇到的问题是,我无法为这个网络服务创建一个使用其他库的客户端。我想用suds库来做这个客户端应用。

你有没有成功用Python(比如用suds库)来消费用soaplib创建的SOAP网络服务呢?

2 个回答

1

你是在问是否可以使用其他工具构建的SOAP网络服务,而不是用soaplib吗?当然可以,这样做是完全可行的。Suds是一个不错的选择。

2

你是怎么提供这个服务的呢?soaplib会生成一个WSGI对象,这个对象需要通过一个网络服务器来提供服务。如果你在跟随你提到的helloworld示例,那么你就是在用CherryPy(一个纯Python的网络服务器)在自己的电脑上托管这个服务。在这个示例中,使用的端口是7789(不过你可以用任何你喜欢的端口)。所以如果你使用这个示例,首先应该启动运行cherrypy的脚本——这个脚本需要一直运行,不要返回到命令提示符。当它在运行时,你应该可以通过访问http://localhost:7789/wsdl来访问你的服务——你可以把这个地址放到网页浏览器里看看它是否正常工作。只要网址以wsdl结尾,soaplib就会返回wsdl文件——所以实际上你也可以访问http://localhost:7789/anythingherewsdl

撰写回答