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

Python Web 服务开发者 第 5 部分: Python SOAP 库

 2007-03-30 12:25:51 来源:WEB开发网   
核心提示: 把一切综合在一起导入库后,我们将设置代理对象 remote ,Python Web 服务开发者 第 5 部分: Python SOAP 库(5),这个对象将方法调用转换为远程 SOAP 消息,它的初始化器使用管理远程请求的关键参数:服务器的 URI(被称为“端点”)

把一切综合在一起

导入库后,我们将设置代理对象 remote 。这个对象将方法调用转换为远程 SOAP 消息。它的初始化器使用管理远程请求的关键参数:服务器的 URI(被称为“端点”)、请求元素的 XML 名称空间(通过它,SOAP-as-RPC 将口头承诺变成 XML 基础)和 SOAPAction 头值。

接下来,我们将确定方法参数,对于这个 Web 服务来说,方法参数只是 Haddock 骂人的语言,瑞典语(“se”)或英语(奇怪的是,是“us”而不是“en”)。

最后,我们调用名称正确的方法,代理对象的 Curse 进行 SOAP 调用,然后打印出结果。下面的会话演示了对该程序的使用:

$ python curse.py
What captain Haddock had to say: "Ectoplasmic Byproduct!"

我们自己的 SOAP 服务器

用 SOAP.py 实现 SOAP 服务器相当容易。作为一个示例,我们将仿建字段,还要实现一个很常见的服务:一个程序,给出年份和月份,它将以字符串的形式打印出日历。它的程序服务器是 清单 2(calendar-ws.py)。

清单 2:实现日历服务器的 SOAP.py 程序

 #!/usr/bin/env python
import sys, calendar
#Import the SOAP.py machinery
from WebServices import SOAP
CAL_NS = "http://uche.ogbuji.net/eg/ws/simple-cal"
class Calendar:
 def getMonth(self, year, month):
  return calendar.month(year, month)
 def getYear(self, year):
  return calendar.calendar(year)
server = SOAP.SOAPServer(("localhost", 8888))
cal = Calendar()
server.registerObject(cal, CAL_NS)
print "Starting server..."
server.serve_forever()

上一页  1 2 3 4 5 6 7  下一页

Tags:Python Web 服务

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