返回介绍

第 12 章 SOAP Web 服务

发布于 2019-09-14 13:30:46 字数 3444 浏览 1016 评论 0 收藏 0

第 12 章 SOAP Web 服务

  • 12.1. 概览
  • 12.2. 安装 SOAP 库
    • 12.2.1. 安装 PyXML
    • 12.2.2. 安装 fpconst
    • 12.2.3. 安装 SOAPpy
  • 12.3. 步入 SOAP
  • 12.4. SOAP 网络服务查错
  • 12.5. WSDL 介绍
  • 12.6. 以 WSDL 进行 SOAP 内省
  • 12.7. 搜索 Google
  • 12.8. SOAP 网络服务故障排除
  • 12.9. 小结

第 11 章 关注 HTTP 上面向文档的web 服务。 “输入参数” 是 URL, “返回值” 是需要你来解析的一个实际的 XML 文档。

本章将关注更加结构化地 SOAP web 服务。 SOAP 不需要你直接与 HTTP 请求和 XML 文档打交道,而是允许你模拟返回原始数据类型的函数调用。 正像你将要看到的,这个描述恰如其份;你可以使用标准 Python 调用语法通过 SOAP 库去调用一个函数,这个函数也自然会返回 Python 对象和值。 但解开这层面纱, SOAP 库实际上扮演了一个多 XML 文档和远程服务器参与的复杂处理过程。

SOAP 的贴切定义很复杂,不要误认为 SOAP 就是用于调用远程函数。有些人觉得应该补充上: SOAP 还允许单向异步的信息通过,并且是面向文档的 Web 服务。 有这样想法的人是正确的,SOAP 的确是这样,但却不止于此。但这一章的重点在于所谓的 “RPC-style” SOAP —— 调用远程函数获得返回结果。

12.1. 概览

你用 Google, 对吧? 它是一个很流行的搜索引擎。 你是否曾经希望能以程序化的方式访问 Google 的搜索结果呢? 现在你能做到了。 下面是一个用 Python 搜索 Google 的程序。

例 12.1. search.py

from SOAPpy import WSDL
# you'll need to configure these two values;
# see http://www.google.com/apis/
WSDLFILE = '/path/to/copy/of/GoogleSearch.wsdl'
APIKEY = 'YOUR_GOOGLE_API_KEY'
_server = WSDL.Proxy(WSDLFILE)
def search(q):
    """Search Google and return list of {title, link, description}"""
    results = _server.doGoogleSearch(
        APIKEY, q, 0, 10, False, "", False, "", "utf-8", "utf-8")
    return [{"title": r.title.encode("utf-8"),
             "link": r.URL.encode("utf-8"),
             "description": r.snippet.encode("utf-8")}
            for r in results.resultElements]
if __name__ == '__main__':
    import sys
    for r in search(sys.argv[1])[:5]:
        print r['title']
        print r['link']
        print r['description']
        print

你可以在较大的程序中以模块导入并使用它, 也可以在命令行上运行这个脚本。在命令行上, 需要把查询字符串作为命令行参数使用, 之后就会打印出最前面的五个 Google 查询结果,包括: URL, 标题和描述信息。

下面是以 “python” 作为命令行参数的查询结果。

例 12.2. search.py 的使用样例

C:\diveintopython\common\py> python search.py "python"
<b>Python</b> Programming Language
http://www.python.org/
Home page for <b>Python</b>, an interpreted, interactive, object-oriented,
extensible<br> programming language. <b>...</b> <b>Python</b>
is OSI Certified Open Source: OSI Certified.
<b>Python</b> Documentation Index
http://www.python.org/doc/
 <b>...</b> New-style classes (aka descrintro). Regular expressions. Database
API. Email Us.<br> docs@<b>python</b>.org. (c) 2004. <b>Python</b>
Software Foundation. <b>Python</b> Documentation. <b>...</b>
Download <b>Python</b> Software
http://www.python.org/download/
Download Standard <b>Python</b> Software. <b>Python</b> 2.3.3 is the
current production<br> version of <b>Python</b>. <b>...</b>
<b>Python</b> is OSI Certified Open Source:
Pythonline
http://www.pythonline.com/
Dive Into <b>Python</b>
http://diveintopython.org/
Dive Into <b>Python</b>. <b>Python</b> from novice to pro. Find:
<b>...</b> It is also available in multiple<br> languages. Read
Dive Into <b>Python</b>. This book is still being written. <b>...</b>

进一步阅读

  • http://www.xmethods.net/ 是一个访问 SOAP web 服务的公共知识库。
  • SOAP 说明书 对于 SOAP 相关的问题讨论非常易读。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文