导航: 起始页 > Dive Into Python > SOAP Web 服务 > 步入 SOAP | << >> | ||||
Python 研究(Dive Into Python)Python 从新手到高手 [DIP_5_4_CPUG_RELEASE] |
调用远程函数是 SOAP 的核心功能。有很多提供公开 SOAP 访问的服务器提供用于展示的简单功能。
最受欢迎的 SOAP 公开访问服务器是 http://www.xmethods.net/。这个例子使用了一个展示函数,可以根据美国邮政编码返回当地气温。
>>> from SOAPpy import SOAPProxy >>> url = 'http://services.xmethods.net:80/soap/servlet/rpcrouter' >>> namespace = 'urn:xmethods-Temperature' >>> server = SOAPProxy(url, namespace) >>> server.getTemp('27502') 80.0
你通过 SOAPProxy 这个 proxy 类访问远程 SOAP 服务器。这个 proxy 处理了所有的 SOAP 内部事务,其中包括:根据函数名和参数列表创建 XML 请求文档并将这个请求文档通过 HTTP 发送到远程 SOAP 服务器,解析 XML 返回文档并创建 Python 原始返回值。在下一节中你将看到这个 XML 文档。 | |
每个 SOAP 服务都有一个 URL 用以处理所有请求。 相同的 URL 可以用于所有的函数请求。每个特定服务则只有一个函数。但稍后你将看到的 Google API 却有多个函数。这个服务的 URL 提供给所有函数分享。每个 SOAP 服务都有一个命名空间(namespace),这个命名空间是由服务器任意命名的。这不过是为了调用 SOAP 方法而设置的。它使得服务器为多个不相关的服务提供服务 URL 和路径请求共享成为可能。这与 Python 中模块到 packages 的关系类似。 | |
这里你创建了包含服务 URL 和服务命名空间的 SOAPProxy。这与 SOAP 服务器无关,仅仅是建立了一个本地 Python 对象。 | |
到此为止,如果你的设置完全正确,应该可以向调用本地函数一样调用远程 SOAP 方法。像给普通函数传递参数并接收返回一样,但在这背后却隐藏着很多的工作。 |
让我们看一看这些背后的工作。
<< 安装 SOAP 库 |
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | |
SOAP 网络服务查错 >> |