- 论坛徽章:
- 0
|
一、环境配置
首先,没有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每天最多只允许搜索一千次,其许可协议注明不能使用于商业模式的网站,而对于个人研究来说,每天一千次的搜索也就足够了。 |
|