【问题标题】:Python SOAP server / clientPython SOAP 服务器/客户端
【发布时间】:2009-11-17 19:03:03
【问题描述】:

我对 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。我收到了 503 snd 504 之类的响应。 from suds.client import Client client=Client(URL) print client

标签: python soap web-services


【解决方案1】:

您如何提供服务? soaplib 生成一个 WSGI 对象,需要由网络服务器提供服务。如果您正在关注您链接到的 helloworld 示例,那么您正在使用 CherryPy(一个纯 Python Web 服务器)在您自己的机器上托管该服务。在示例中,端口是 7789(但您可以使用任何您喜欢的端口)。所以如果你使用这个例子,你应该首先启动运行cherrypy的脚本——这应该保持运行而不返回提示。当它运行时,您应该能够在http://localhost:7789/wsdl 访问您的服务 - 您可以将该地址放在网络浏览器中以查看它是否正常工作。只要 url 以 wsdl 结尾,Soaplib 就会返回 wsdl - 所以实际上你可以这样做 http://localhost:7789/anythingherewsdl

【讨论】:

  • 非常有帮助!非常感谢您的帮助。
  • 首先,感谢您的帮助。我不知道为什么,但在我看来,问题出在我的网络代理上。当我使用下面给出的代码时,我得到了 HTTP 错误 503:Service Unavailable from suds.client import Client client = Client("localhost:7789/wsdl") print client 当我关闭该 Web 代理时,那个简单的代码可以成功运行!希望我找到了为 problem 提供解决方案的网页。
  • 您没有说明您使用的是什么操作系统或如何配置代理 - 但在大多数情况下,在您的代理配置屏幕中有一个设置,例如“无代理:”或“绕过代理:”,你应该把 localhost 放在那里。本地主机是一个特殊的环回地址,指向你自己的计算机,所以如果你通过代理把它——它指向代理所在的计算机。
  • 你明白了。我找到了一个选项“排除简单主机名”并选择了它。现在,一切正常。感谢您的提示。
【解决方案2】:

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

【讨论】:

  • 好的,但我不知道怎么做。我正在寻找一个教程或一个简单的例子,它展示了如何使用由 soaplib 创建的带有 suds 的肥皂网络服务,但我找不到它。
  • 先查看fedorahosted.org/suds/wiki/Documentation。 “基本用法”下面的内容可能会有所帮助。
  • @jlafay 请参阅this,尤其是“不鼓励进行微小、琐碎的编辑”
  • @Shadow 向导,注意。对此感到抱歉。
  • @jlafay 已经完成了,只是为了避免像这样的小修改而碰到旧问题。 :)
猜你喜欢
  • 1970-01-01
  • 2021-07-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-01
相关资源
最近更新 更多