[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 自动执行翻译。

 
相关文章
|
15天前
|
开发框架 监控 .NET
Visual Basic的Web服务和REST API开发指南
【4月更文挑战第27天】本文探讨了使用Visual Basic(VB.NET)构建Web服务和RESTful API的方法。首先介绍了Web服务的基础和REST API的概念,然后阐述了.NET Framework与.NET Core/.NET 5+对VB.NET的支持,以及ASP.NET Core在Web开发中的作用。接着,详细讲解了创建RESTful API的步骤,包括控制器与路由设置、模型绑定与验证,以及返回响应。此外,还讨论了安全措施、测试方法、部署选项和监控策略。最后强调,VB.NET开发者可以通过ASP.NET Core涉足现代Web服务开发,拓宽技术领域。
|
12天前
|
弹性计算 JSON Shell
基于Web API的自动化信息收集和整理
【4月更文挑战第30天】
20 0
|
1天前
|
安全 API 开发者
智能体-Agent能力升级!新增Assistant API & Tools API服务接口
ModelScope-Agent是一个交互式创作空间,它支持LLM(Language Model)的扩展能力,例如工具调用(function calling)和知识检索(knowledge retrieval)。它已经对相关接口进行了开源,以提供更原子化的应用LLM能力。用户可以通过Modelscope-Agent上的不同代理(agent),结合自定义的LLM配置和消息,调用这些能力。
|
1天前
|
XML 存储 安全
LabVIEWCompactRIO 开发指南23 Web服务
LabVIEWCompactRIO 开发指南23 Web服务
|
1天前
|
JSON 监控 安全
LabVIEW测试和调试Web服务
LabVIEW测试和调试Web服务
|
1天前
|
JSON 数据格式 Windows
LabVIEW创建Web服务
LabVIEW创建Web服务
|
6天前
|
开发框架 JavaScript 安全
WIndows Server 2016 部署 Web服务(简单篇)
WIndows Server 2016 部署 Web服务(简单篇)
|
10天前
|
负载均衡 Java API
构建高效微服务架构:API网关与服务熔断策略
【5月更文挑战第2天】 在微服务架构中,确保系统的高可用性与灵活性是至关重要的。本文将深入探讨如何通过实施有效的API网关和设计合理的服务熔断机制来提升分布式系统的鲁棒性。我们将分析API网关的核心职责,包括请求路由、负载均衡、认证授权以及限流控制,并讨论如何利用熔断器模式防止故障传播,维护系统的整体稳定性。文章还将介绍一些实用的技术和工具,如Netflix Zuul、Spring Cloud Gateway以及Hystrix,以帮助开发者构建一个可靠且高效的微服务环境。
|
12天前
|
缓存 监控 测试技术
【Go语言专栏】使用Go语言构建高性能Web服务
【4月更文挑战第30天】本文探讨了使用Go语言构建高性能Web服务的策略,包括Go语言在并发处理和内存管理上的优势、基本原则(如保持简单、缓存和并发控制)、标准库与第三方框架的选择、编写高效的HTTP处理器、数据库优化以及性能测试和监控。通过遵循最佳实践,开发者可以充分利用Go语言的特性,构建出高性能的Web服务。
|
13天前
|
弹性计算 运维 Serverless
Serverless 应用引擎产品使用之在阿里函数计算中,使用阿里云API或SDK从函数计算调用ECS实例的服务如何解决
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
41 4