WEB开发网
开发学院软件开发Python Python Web 服务开发者: 现实世界,第二部分 阅读

Python Web 服务开发者: 现实世界,第二部分

 2007-03-29 12:13:08 来源:WEB开发网   
核心提示: 在导入 SOAPpy 库之后,我们使用这个库来为发布在各自站点上的 WSDL 中的 Amazon Web 服务 API 创建一个代理,Python Web 服务开发者: 现实世界,第二部分(5),SOAPpy 中的 WSDL.Proxy 为访问通过 WSDL 定义的 API 提供了功能强大

在导入 SOAPpy 库之后,我们使用这个库来为发布在各自站点上的 WSDL 中的 Amazon Web 服务 API 创建一个代理。SOAPpy 中的 WSDL.Proxy 为访问通过 WSDL 定义的 API 提供了功能强大的工具。在使用代理进行任何调用之前,我们先将 Amazon API 中公开的方法列表打印出来。这样一来,正如 WSDL 中所指定的和 API 文档中所描述的一样,调用 SOAP 方法就与构造合适参数并在代理对象上调用方法一样简单了。在本例下,我们创建一个 request 结构,然后使用适当的参数将这个结构填充到我们的查询中去。

注意,我们使用的是 SOAPpy 的 Types.py 模块中的 _keys() 方法,因为结果的详细情况(details)组件是 SOAP arrayType ,它通常映射到 Python 字典。

0.10.4 版本的 SOAPpy 在试着从 URL 加载的 WSDL 定义时存在着一个错误。(请参见 清单 3)。

清单 3. 使用 SOAPpy 从 URL 加载 WSDL 的跟踪信息    
Traceback (most recent call last):
 File "./amazon_soap_test.py", line 21, in ?
  proxy = SOAPpy.WSDL.Proxy(url)
 File "/usr/lib/python2.3/site-packages/SOAPpy/WSDL.py", line 61, in __init__
  self.wsdl = reader.loadFromStream(stream)
 File "/usr/lib/python2.3/site-packages/SOAPpy/wstools/WSDLTools.py",
 line 28, in loadFromStream
  wsdl.location = file.name
AttributeError: addinfourl instance has no attribute 'name'
      

直接从 URL 加载 WSDL 需要能够快速修复 SOAPpy 0.10.4 中的 WSDL.py 模块——如 清单 4 所示——您主要是将赋值调用从 reader.loadFromStream(stream) 更改到了 reader.loadFromURL(wsdlsource) 。

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

Tags:Python Web 服务

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