[Google API](7)直接使用Web服务

简介: 到目前为止,本教程一直在讨论通过 Java 应用程序使用 API 来达到 Google Web 服务的使用目的,但这只是一种方便的办法。

到目前为止,本教程一直在讨论通过 Java 应用程序使用 API 来达到 Google Web 服务的使用目的,但这只是一种方便的办法。可以直接通过 SOAP 消息(在 http://api.google.com/search/beta2)使用服务本身。

SOAP 消息携带有关执行服务器端子程序的信息,参数在消息体内指定。服务器将发送一条 SOAP 消息作为响应,并在消息体内对信息进行编码。

然后,应用程序接收到响应,要么将其作为单独的信息处理,要么使用传统的 XML 方法对数据进行转换。

这一章将着眼于请求和响应 SOAP 消息和发送、接收消息的 JAXM 应用程序。(若想更多的了解使用 JAXM 发送、接收 SOAP 消息的信息,请参阅构建使用 Google API 的 Java 应用程序参考资料。)


  发送 SOAP 请求

首先,请看一个 JAXM 应用程序,它发送一条预先定义好的 SOAP 消息,并输出结果。

 
 

这个应用程序首先创建了一个连接,然后是一个 SOAPMessage 对象。文件 search.msg 将填入消息的 SOAPPart,接着它会被发给 Google Web 服务。

以另外一条 SOAP 消息的形式,回复得以返回,它的相关信息在 SOAPPart 中。在这种情况下,实际上您并没有转换信息,而只是将 Transformer 用作序列化器把结果发给 results.out 文件。

在下几屏中,我会分析实际的消息。


  搜索请求

搜索请求 SOAP 消息包含的参数和以前 API 所设置的完全相同,不过,现在这些参数是 XML 元素:

 
 

请注意,doGoogleSearch 这个方法名是在消息内指定的,而且列出了每个参数,即使是空值的参数。这与执行以下的方法是一样的:

doGoogleSearch("", ""science fiction"", 0, 10, true, "", false, "", "latin1",
"latin1")


  搜索结果

结果 XML 文件携带的信息和 API 所提取的一样。以下所示的部分结果添加了一些空格以增加其易读性。

 
 

请注意,API 检索到的每条信息都可以在 XML 元素中使用。


  转换结果

利用结果与为将结果转换为需要的格式而创建一个样式表都很简单。例如,简单的样式表能提取站点标题和 URL:

 
 

接下来应用程序将调用该样式表……

 
 

……得到的是格式很规范的结果:

 
 

请注意这只是很简单的示例。您可以使用 XSLT 来提取,甚至处理数据以使其可以包括在数据库和其它系统中,并使其可以为其它应用程序所用。


  拼写请求

拼写建议的 SOAP 消息很直观。

请求:

 
 

结果:

 
 
 
 


  缓存请求

由于响应是以 base64 返回的,所以缓存请求有点复杂。请求:

 
 
 
 

生成结果:

 
 

请务必相应调整您的应用程序,否则就请直接用 API 自动执行翻译。

 
相关文章
|
1月前
|
人工智能 Serverless API
一键服务化:从魔搭开源模型到OpenAI API服务
在多样化大模型的背后,OpenAI得益于在领域的先发优势,其API接口今天也成为了业界的一个事实标准。
一键服务化:从魔搭开源模型到OpenAI API服务
|
13天前
|
安全 API 开发者
Web 开发新风尚!Python RESTful API 设计与实现,让你的接口更懂开发者心!
在当前的Web开发中,Python因能构建高效简洁的RESTful API而备受青睐,大大提升了开发效率和用户体验。本文将介绍RESTful API的基本原则及其在Python中的实现方法。以Flask为例,演示了如何通过不同的HTTP方法(如GET、POST、PUT、DELETE)来创建、读取、更新和删除用户信息。此示例还包括了基本的路由设置及操作,为开发者提供了清晰的API交互指南。
55 6
|
12天前
|
存储 JSON API
实战派教程!Python Web开发中RESTful API的设计哲学与实现技巧,一网打尽!
在数字化时代,Web API成为连接前后端及构建复杂应用的关键。RESTful API因简洁直观而广受欢迎。本文通过实战案例,介绍Python Web开发中的RESTful API设计哲学与技巧,包括使用Flask框架构建一个图书管理系统的API,涵盖资源定义、请求响应设计及实现示例。通过准确使用HTTP状态码、版本控制、错误处理及文档化等技巧,帮助你深入理解RESTful API的设计与实现。希望本文能助力你的API设计之旅。
36 3
|
13天前
|
JSON API 数据库
从零到英雄?一篇文章带你搞定Python Web开发中的RESTful API实现!
在Python的Web开发领域中,RESTful API是核心技能之一。本教程将从零开始,通过实战案例教你如何使用Flask框架搭建RESTful API。首先确保已安装Python和Flask,接着通过创建一个简单的用户管理系统,逐步实现用户信息的增删改查(CRUD)操作。我们将定义路由并处理HTTP请求,最终构建出功能完整的Web服务。无论是初学者还是有经验的开发者,都能从中受益,迈出成为Web开发高手的重要一步。
36 4
|
11天前
|
开发框架 JSON 缓存
震撼发布!Python Web开发框架下的RESTful API设计全攻略,让数据交互更自由!
在数字化浪潮推动下,RESTful API成为Web开发中不可或缺的部分。本文详细介绍了在Python环境下如何设计并实现高效、可扩展的RESTful API,涵盖框架选择、资源定义、HTTP方法应用及响应格式设计等内容,并提供了基于Flask的示例代码。此外,还讨论了版本控制、文档化、安全性和性能优化等最佳实践,帮助开发者实现更流畅的数据交互体验。
32 1
|
13天前
|
JSON API 开发者
惊!Python Web开发新纪元,RESTful API设计竟能如此性感撩人?
在这个Python Web开发的新纪元里,RESTful API的设计已经超越了简单的技术实现,成为了一种追求极致用户体验和开发者友好的艺术表达。通过优雅的URL设计、合理的HTTP状态码使用、清晰的错误处理、灵活的版本控制以及严格的安全性措施,我们能够让RESTful API变得更加“性感撩人”,为Web应用注入新的活力与魅力。
30 3
|
15天前
|
JSON API 数据格式
深度剖析!Python Web 开发中 RESTful API 的每一个细节,你不可不知的秘密!
在 Python Web 开发中,RESTful API 是构建强大应用的关键,基于 Representational State Transfer 架构风格,利用 HTTP 卞性能。通过 GET、POST、PUT 和 DELETE 方法分别实现资源的读取、创建、更新和删除操作。示例代码展示了如何使用 Flask 路由处理这些请求,并强调了状态码的正确使用,如 200 表示成功,404 表示未找到资源等。
38 5
|
24天前
|
Go API 开发者
深入探讨:使用Go语言构建高性能RESTful API服务
在本文中,我们将探索Go语言在构建高效、可靠的RESTful API服务中的独特优势。通过实际案例分析,我们将展示Go如何通过其并发模型、简洁的语法和内置的http包,成为现代后端服务开发的有力工具。
|
2月前
|
API C# 开发框架
WPF与Web服务集成大揭秘:手把手教你调用RESTful API,客户端与服务器端优劣对比全解析!
【8月更文挑战第31天】在现代软件开发中,WPF 和 Web 服务各具特色。WPF 以其出色的界面展示能力受到欢迎,而 Web 服务则凭借跨平台和易维护性在互联网应用中占有一席之地。本文探讨了 WPF 如何通过 HttpClient 类调用 RESTful API,并展示了基于 ASP.NET Core 的 Web 服务如何实现同样的功能。通过对比分析,揭示了两者各自的优缺点:WPF 客户端直接处理数据,减轻服务器负担,但需处理网络异常;Web 服务则能利用服务器端功能如缓存和权限验证,但可能增加服务器负载。希望本文能帮助开发者根据具体需求选择合适的技术方案。
68 0
|
2月前
|
API Java Python
API的神秘面纱:从零开始构建你的RESTful服务
【8月更文挑战第31天】在现代网络应用开发中,RESTful API已成为数据交互的标准。本文通过比较流行的技术栈(如Node.js、Python的Django和Flask、Java的Spring Boot)及其框架,帮助你理解构建RESTful API的关键差异,涵盖性能、可扩展性、开发效率、社区支持、安全性和维护性等方面,并提供示例代码和最佳实践,指导你选择最适合项目需求的工具,构建高效、安全且易维护的API服务。
37 0
下一篇
无影云桌面