`
legend9999
  • 浏览: 32156 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

通过Web Service调用Google SOAP Search API

阅读更多

一、环境配置

  首先,没有Java开发环境的,需要安装一下环境,点这里查看《Java开发环境的详细配置方法 》,其实,本示例安装JDK 1.42以及Eclipse 3.2就可以了。

  二、将Apache Axis相关包文件放在WEB-INF\lib目录下

  从Apache的主页上下载Axis包文件,复制到lib目录下。

  三、申请Google SOAP Search API license key

  要使用Google的服务,必须要有“license key”,如果你有Gmail帐号,点这里 就可以申请license key,这个license key是一段很长的字符串,每个key可以支持每天1000次的Google搜索。

  四、下载WSDL文件,生成客户端Java代码

  WSDL文件的下载地址参见:http://api.google.com/GoogleSearch.wsdl

  生成客户端代码的批处理文件如下:

set Axis_Lib=D:\workspace\test\WEB-INF\lib

set Java_Cmd=java -Djava.ext.dirs=%Axis_Lib%

set Output_Path=D:\workspace\test\src

set Package=com.google.api

%Java_Cmd% org.apache.axis.wsdl.WSDL2Java -o%Output_Path% -p%Package% GoogleSearch.wsdl

  最后会生成下列代码文件:

DirectoryCategory.java

GoogleSearchBindingStub.java

GoogleSearchPort_PortType.java

GoogleSearchResult.java

GoogleSearchService.java

GoogleSearchServiceLocator.java

ResultElement.java

  五、编写程序,调用Google SOAP Search API

  在上面那个包下,编写你自己的Java程序,就可以调用Google SOAP Search API.目前可以使用的Google服务有:网页搜索,网页快照,拼写检查这三个。

  Java示例代码如下,请使用前将clientKey替换为你自己的。替换后直接运行即可得出结果。

package com.google.api;

import java.rmi.RemoteException;

import javax.xml.rpc.ServiceException;

public class ClientGoogle {

? public static void main(String[] args) throws ServiceException,

??? RemoteException {

??? String clientKey = "kkkkkkkkkkkkkkkkkkkkkkkkkkey";

??? GoogleSearchServiceLocator service = new GoogleSearchServiceLocator();

??? GoogleSearchPort_PortType gsp = service.getGoogleSearchPort();

??? //Google Search API

??? GoogleSearchResult searchResult = gsp.doGoogleSearch(clientKey,

??????? "www.williamlong.info", 0, 10, false, "", false, "", "latin1",

??????? "latin1");

??? System.out.println("Google Search Results:");

??? System.out.println("======================");

??? ResultElement results[] = searchResult.getResultElements();

??? for (int counter = 0; counter < results.length; ++counter) {

????? ResultElement result = results[counter];

????? String returnResult = "('" + result.getTitle() + "','"

????????? + result.getURL() + "','" + result.getSnippet() + "')";

????? System.out.println("Return Result");

????? System.out.println(returnResult);

??? }

??? //Google CachedPage

??? byte[] cachedBytes = gsp.doGetCachedPage(clientKey,

??????? "http://www.williamlong.info/");

??? System.out.println("Cached page:");

??? System.out.println("============");

??? String cachedString = new String(cachedBytes);

??? System.out.println(cachedString);

??? //Google SpellingSuggestion

??? String suggestion = (String) gsp.doSpellingSuggestion(clientKey,

??????? "williamlong");

??? System.out.println(suggestion);

? }

}

  当然,你也可以不使用Apache Axis,Google自己也提供了一个API包可以做为客户端调用,下载地址参见这里

  最后声明一下,Google SOAP Search API是属于实验产品,每个license每天最多只允许搜索一千次,其许可协议注明不能使用于商业模式的网站,而对于个人研究来说,每天一千次的搜索也就足够了。

  相关专业名词解释:

  Web Service:是一种革命性的分布是计算技术。它使用基于XML的消息处理作为基本的数据通讯方式,消除使用不同组件模型、操作系统和编程语言的系统之间存在的差异,使异类系统能够作为计算网络的一部分协同运行。开发人员可以使用像过去创建分布式应用程序时使用组件的方式,创建由各种来源的Web服务组合在一起的应用程序。由于Web服务是建立在一些通用协议的基础上,如HTTP(Hypertext Transfer Protocol, WWW服务程序所用的协议),SOAP(Simple Object Access Protocol,简单对象访问协议),XML,WSDL(Web Services Description Language,Web服务描述语言),UDDI(Universal Description,Discovery,and Integration,通用描述发现和集成协议)等,这些协议在涉及到操作系统、对象模型和编程语言的选择时,没有任何倾向,因此Web服务将会有很强的生命力。

  SOAP:是“Simple Object Access Protocol”的缩写,SOAP是消息传递的协议,它规定了Web Services之间是怎样传递信息的。简单的说,SOAP规定了:

  1. 传递信息的格式为XML.这就使Web Services能够在任何平台上,用任何语言进行实现。

  2. 远程对象方法调用的格式。规定了怎样表示被调用对象以及调用的方法名称和参数类型等。

  3. 参数类型和XML格式之间的映射。这是因为,被调用的方法有时候需要传递一个复杂的参数,例如,一个Person对象。怎样用XML来表示一个对象参数,也是SOAP所定义的范围。

  WSDL:是“Web Services Description Language”的缩写。WSDL是Web Services的定义语言。当实现了某种服务的时候(如:股票查询服务),为了让别的程序调用,必须告诉大家服务接口。例如:服务名称,服务所在的机器名称,监听端口号,传递参数的类型,个数和顺序,返回结果的类型等等。这样别的应用程序才能调用该服务。WSDL协议就是规定了有关Web Services描述的标准。

  UDDI:是“Universal Description, Discovery,and Integration”的缩写。简单说,UDDI用于集中存放和查找WSDL描述文件,起着目录服务器的作用。

  XML:(eXtensible Markup Language,可扩展标记语言)是Internet上数据表示和数据交换的新标准。它是ISO(International Organization for Standardization,国际标准化组织)的SGML(Standard for General Markup Language,通用标记语言标准)的一个简化子集。XML关注信息本身,是Web上表示结构化信息的一种标准文本格式。与传统的注重页面信息显示的HTML(Hypertext Markup Language, 超文本链接标示语言)相比,关注于内容的XML具有以下诸多优点:良好的可扩展性,语言简单有效,可自行定义标记;内容与形式的分离,主要刻画数据内容,不考虑显示效果;有严格的语法要求,便于分析统一和与数据库信息转换;便于传输,为纯文本形式,可通过Http协议直接传输,可跨越防火墙;等等。XML的出现和发展对于Internet和Intranet产生了巨大的影响。

分享到:
评论

相关推荐

    java调用soap接口案例

    Java调用SOAP(Simple Object Access Protocol)接口是Web服务交互中的常见操作,SOAP是一种基于XML的协议,用于在Web上交换结构化的和类型化的信息。本案例主要关注如何使用Java来实现SOAP请求并获取响应,具体我们...

    webapi调用的方法

    WebAPI调用是软件开发中常见的一种技术,主要用于应用程序与服务器端进行数据交互。在这个场景中,我们讨论的是一个名为"opensinaapi1.0beta3"的压缩包,它包含了一个用于测试新浪API的代码库。新浪API是新浪提供的...

    D6 SOAP_WEB SERVICE

    标题"D6 SOAP_WEB SERVICE"指的是使用Delphi编程语言开发基于SOAP(简单对象访问协议)的Web服务。在本文中,我们将深入探讨这个主题,了解如何使用Delphi构建Web服务以及SOAP在其中的作用。 首先,让我们了解一下...

    Web Service调用打印机打印自定义表单

    总的来说,通过Web Service调用打印机打印自定义表单涉及到Web服务设计、前端表单绘制、数据转换、打印机API理解和安全控制等多个方面。开发者需要综合运用多种技术和工具,才能实现这个功能,并确保其稳定可靠。...

    Web Service SOAP Client set SOAP Header

    这样,每次通过客户端代理调用Web Service时,都会自动添加预设的SOAP Header,从而实现身份验证和其他自定义功能。请注意,实际项目中需要替换`your_username`和`your_password`为真实的用户名和密码。同时,为了...

    programming web service with soap

    - 通过使用SOAP可以构建远程过程调用(RPC)风格的服务,这种方式简化了客户端与服务器之间的交互过程。 - **3.6 SOAP的数据编码** - SOAP支持多种数据编码方式,例如XML编码和二进制编码,以适应不同的应用场景。...

    VB调用web api打开第三方图纸

    本话题将深入探讨如何使用VB调用Web API来打开第三方图纸,这通常涉及到跨平台数据访问和集成。 首先,我们需要理解VB调用Web API的基本原理。在VB中,可以使用`HttpClient`类来发送HTTP请求到Web API。这个过程...

    基于PHP的Googleluhui SOAP Search API Beta PHP.zip

    在本案例中,开发者可能已经创建了一个库或类,以便通过PHP调用Google的搜索服务,执行关键词查询、获取搜索结果等操作。 【描述】"基于PHP的Googleluhui SOAP Search API Beta PHP.zip" 描述的是一个处于测试阶段...

    Windows服务定时调用WebApi采集数据

    本实列模拟windows服务定时调用WebApi接口,采集第三方的电子处方数据,并提供第三方所需SQL视图,代码功能及实现逻辑测试可用,内附流程图及数据库安装脚本。因本程序调用的是第三方接口,需要在内网环境调用(如需...

    D6 SOAP_WEB SERVICE程序设计.part1.rar

    第一章 SOAP和Web Service的概念 第二章 组件模型、Internet/Intranet和SOAP 第三章 开发Web Service 第四章 什么是SOAP 第五章 SOAP和数据封装 第六章 SOAP和远程调用 第七章 Web Service和UDDI 第八章 处理复杂...

    基于c#实现的webapi调用软件

    基于c#实现的webapi调用软件,用于请求web服务,尤其是通过aistudio平台部署的深度学习模型。如果您的自己的webapi接口返回的也是json格式的信息,也可以使用本软件进行请求调用。只是在请求服务前,一定要点击软件...

    [搜索链接]Googleluhui SOAP Search API v1.0 Beta_googleluhui.zip

    【Googleluhui SOAP Search API v1.0 Beta】是一个早期的搜索引擎接口,它允许开发者通过SOAP(简单对象访问协议)来与Google的搜索服务进行交互。SOAP是一种基于XML的协议,用于在Web上交换结构化和类型化的信息。...

    JAVA调用webApi完整jar包 httpclient 等等

    java调用.NET webAPI httpclient-4.2.5.jar httpclient-cache-4.2.5.jar httpcore-4.2.4.jar httpmime-4.2.5.jar fluent-hc-4.2.5.jar commons-codec-1.6.jar

    web service 教程

    就是一个应用程序它向外界暴露出一个能够通过Web进行调用的API。这就是说你能 够用编程的方法通过Web来调用这个应用程序。 对Web service 更精确的解释 Web services是建立可互操作的分布式应用程序的新...

    创建Web 应用程序和服务 和 web service 调用 源码

    本文将深入探讨如何创建Web应用程序和服务以及如何进行Web Service调用,并基于提供的源码进行详细讲解。 首先,让我们理解Web应用程序和服务的基础概念。Web应用程序是在Web服务器上运行的软件,用户可以通过...

    Web Service远程调用技术

    Web Service 是一种跨编程语言和跨操作系统平台的远程调用技术,通过 SOAP 在 Web 上提供的软件服务,使用 WSDL 文件进行说明,并通过 UDDI 进行注册。XML 是 Web Service 的基础,它是扩展型可标记语言,面向短期的...

    调用pb开发的webserver(SOAP 1.2)

    调用pb开发的webserver(SOAP 1.2) /* POST /webservice/n_webservice.asmx HTTP/1.1 Host: localhost Content-Type: application/soap+xml; charset=utf-8 Content-Length: length &lt;soap12:Envelope xmlns:xsi=...

    C# WEBAPI 及winform调用

    webapi 项目平台,包含接口生成,及接口调用方法,项目代码清晰明了,非常值得初学者参考借鉴,更具体的开发步骤可以登入我的博客查看:http://www.cnblogs.com/gudaozi/p/8384734.html

    JAVA 调用SAP SOAP webservice.docx

    JAVA 调用 SAP SOAP webservice 详解 在本文中,我们将详细介绍如何使用 JAVA 调用 SAP SOAP webservice,包括配置 SAP 登录信息...通过遵循这些步骤,我们可以轻松地调用 SAP SOAP webservice,以满足实际业务需求。

    android基于soap协议的web service调用(不用框架)

    网络上很多基于ksoap2开发包的WEB SERVICE调用,虽然ksoap2不大,...本代码可以基于http协议,拼凑SOAP协议,完成.net以及java开发的web service调用。供大家分享!内部也有一例是基于ksoap2开发包的web service调用

Global site tag (gtag.js) - Google Analytics