Python Web 服务开发者 第 6 部分: Python SOAP 库,第 2 部分
2007-03-29 12:12:35 来源:WEB开发网核心提示: $ python setup.py install请下载 ZSI 包并将它解包,然后以相同的办法构建它:$ python setup.py install这是 Python 的分发实用程序(distribution utility)(也称为 distutils)给安装附加的 Python
$ python setup.py install
请下载 ZSI 包并将它解包,然后以相同的办法构建它:
$ python setup.py install
这是 Python 的分发实用程序(distribution utility)(也称为 distutils)给安装附加的 Python 包带来的一致性。
既然都安装好了,就请您使用 Python 文档工程中所用的相同的 LaTeX 工具来查看一下 doc 目录,其中有 HTML、PDF、postscript 和 TeX 格式的很不错的文档。
调用客户机特权
首先,我们来研究作为 SOAP 客户机的 ZSI。在上一部分中,我们编写了一个访问玩具 Web 服务的 SOAP.py 客户机,该 Web 服务返回 Captain Haddock(阿道克船长)的咒语(curse)(在 丁丁漫画迷中常盛不衰)。我们将用 ZSI 编写一个针对同一个服务器的客户机。不幸的是,我们在这样做时碰到了一些纠缠难解的问题。最简单的办法如 清单 1 的代码所示,但我们发现这种办法要求服务器既要按照参数名,又要按照参数的顺序来处理消息参数,而用来实现 Captain Haddock 服务器的 Borland Delphi 实现的灵活性却没这么好,因此,这让人很苦恼。
清单 1:试图访问 Captain Haddock SOAP 服务的 ZSI 程序
#http://xmethods.net/detail.html?id=175
import sys
#Import the ZSI client
from ZSI.client import Binding
u = '/scripts/Haddock.exe/soap/IHaddock'
n = 'urn:HaddockIntf-IHaddock'
b = Binding(url=u, ns=n, host='www.tankebolaget.se', port=80,
tracefile=sys.stdout)
try:
lang = sys.argv[1]
except IndexError:
lang = 'us'
result = b.Curse(lang)
print 'What captain Haddock had to say: "%s"'%result
更多精彩
赞助商链接