WEB开发网
开发学院软件开发Python Python Web 服务开发者 第 8 部分: Python SOAP 库... 阅读

Python Web 服务开发者 第 8 部分: Python SOAP 库,第 3 部分

 2008-09-30 13:00:25 来源:WEB开发网   
核心提示: 做了这些更改之后,ZSI 客户机输出 SOAP.py 服务器返回的 2002 年 2 月的日历就不会有问题了,Python Web 服务开发者 第 8 部分: Python SOAP 库,第 3 部分(3),看起来,您已经成功的完成了前面一半的分析, 要运行样本脚本,请在一个窗口中再次启动

做了这些更改之后,ZSI 客户机输出 SOAP.py 服务器返回的 2002 年 2 月的日历就不会有问题了。看起来,您已经成功的完成了前面一半的分析。现在,我们要看一下在另外一个方向上如何进行通信。

对调一下:ZSI 服务器与 SOAP.py 客户机

要测试用 ZSI 服务器作为服务器的 SOAP.py 客户机,您首先要做的事情就是编写 SOAP.py 客户机。还记得吗,我们曾使用 httplib 编写一个非常低级的客户机来测试 SOAP.py 服务器(请参阅 参考资料看看有关 ZSI 的第六篇专栏文章)。由于您想知道 SOAP.py 对 ZSI 的反应如何,这样做就不管用了。为了使用您的日历 Web 服务,可以编写一个速度较快的客户机,如 清单 2中所示。

清单 2. 更新的 SOAP.py 客户机

#!/usr/bin/env python
import sys
#Import the SOAP.py machinery
from WebServices import SOAP
CAL_NS = "http://uche.ogbuji.net/eg/ws/simple-cal"
remote = SOAP.SOAPProxy(
  "localhost:8888",
  #namespace=CAL_NS,
  soapaction=""
)
print remote.getMonth(2002,2)

这个客户机的实现与第五篇专栏文章中的 curses 客户机的类似。需要注意一点, SOAPProxy 的 namespace(名称空间)参数被注释掉了。正如 ZSI 客户机的缺省实现无法知道名称空间一样,服务器的同样也无法知道。

要运行样本脚本,请在一个窗口中再次启动 ZSI 服务器:

python zsi-server.py

在另一个窗口中启动 SOAP.py 客户机:

python soappy-client.py

如您所愿(因为这个客户机是为了与 ZSI 服务器通信而特地编写的),返回给您的正是 2002 年 2 月的日历。

上一页  1 2 3 4 5  下一页

Tags:Python Web 服务

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接