一、环境配置
首先,没有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产生了巨大的影响。
相关推荐
Google 提供了丰富的 Web Service API,如 Google Search API,可以让开发者在自己的应用中实现搜索功能。通过使用 .NET CF 的网络编程功能,可以轻松地构建 HTTP 请求并解析返回的数据。 #### 十、使用 Google ...
在SOA中,服务可以通过Web Services(如SOAP或RESTful API)进行交互,或者通过消息队列进行异步通信。 RPC和SOA之间的关系在于,RPC可以作为实现SOA的一种技术手段。在SOA架构中,服务间的通信可能通过RPC来完成,...
总的来说,Android调用WebService主要依赖于第三方库如Ksoap2,通过构造SOAP请求并与服务器进行通信,实现跨平台的数据交换。了解和掌握这些技术对于Android开发者来说非常重要,因为它们能帮助开发者构建与服务器端...
这些接口通常基于Web服务标准,如SOAP(Simple Object Access Protocol)或REST(Representational State Transfer),允许不同系统间的互操作性。 4. **服务注册与发现**:在云环境中,服务注册与发现机制至关重要...
6.3.2. 通过名字读取 (Fetching)选项 6.3.3. 报告选项 6.3.4. 读取非选项参数 6.4. 配置 Zend_Console_Getopt 6.4.1. 添加选项规则 6.4.2. 添加帮助信息 6.4.3. 添加选项别名 6.4.4. 添加参数列表 6.4.5. ...