导航:起始页 > Dive Into Python > SOAP Web 服务 > 步入 SOAP | << >> | ||||
深入 Python :Dive Into Python 中文版Python 从新手到专家 [Dip_5.4b_CPyUG_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 服务器。这个代理处理了所有的 SOAP 内部事务,其中包括:根据函数名和参数列表创建 XML 请求文档,并将这个请求文档通过 HTTP 发送到远程 SOAP 服务器;解析 XML 返回文档,并创建本地的 Python 返回值。在下一节中你将看到这个 XML 文档。 | |
每个 SOAP 服务都有一个 URL 用以处理所有请求。相同的 URL 可以用于所有的函数请求。每个特定服务则只有一个函数。但稍后你将看到的 Google API 却有多个函数。这个服务的 URL 提供给所有函数分享。每个 SOAP 服务都有一个命名空间 (namespace),这个命名空间是由服务器任意命名的。这不过是为调用 SOAP 方法设置的。它使得服务器让多个不相关的服务共享服务 URL 和路径请求成为可能。这与 Python 中模块相对于包的关系类似。 | |
这里你创建了包含服务 URL 和服务命名空间的 SOAPProxy。此时还不会连接到 SOAP 服务器;仅仅是建立了一个本地 Python 对象。 | |
到此为止,如果你的设置完全正确,应该可以向调用本地函数一样调用远程 SOAP 方法。这和给普通函数传递参数并接收返回值一样,但在背后却隐藏着很多的工作。 |
让我们看一看这些背后的工作。
<< 安装 SOAP 库 |
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | |
SOAP 网络服务查错 >> |