監(jiān)理公司管理系統(tǒng) | 工程企業(yè)管理系統(tǒng) | OA系統(tǒng) | ERP系統(tǒng) | 造價(jià)咨詢管理系統(tǒng) | 工程設(shè)計(jì)管理系統(tǒng) | 甲方項(xiàng)目管理系統(tǒng) | 簽約案例 | 客戶案例 | 在線試用
X 關(guān)閉

使用Google的Web Service

申請(qǐng)免費(fèi)試用、咨詢電話:400-8352-114

AMTeam.org

使用Google的Web Service


 
一、簡介

Google搜索引擎提供了基于SOAP的Web Service。這意味著不同的開發(fā)語言、開發(fā)環(huán)境都能夠使用這種服務(wù),另外,Google為了簡化Java程序員的開發(fā),它還提供了一套Java API接口,用于訪問Web Serivce,這使得開發(fā)一套支持Google搜索功能的程序變得十分容易。開發(fā)人員可以將Google的搜索功能嵌入到他們的應(yīng)用程序當(dāng)中。本文將介紹如何使用這些Java API,以及如何使用google的Web Service。

目前,Google的API還是處于Beta測(cè)試階段,因此,在API的使用上還有一些限制。例如,使用這些API需要申請(qǐng)一個(gè)帳號(hào)。對(duì)于免費(fèi)申請(qǐng)的帳號(hào),為了防止開發(fā)人員不正當(dāng)?shù)氖褂?,限制每個(gè)帳號(hào)、每天最多只能查詢1000次。目前,Google還沒有提出正式的運(yùn)營模式和收費(fèi)方式。
Google API目前主要提供三種服務(wù),分別如下:

1)搜索服務(wù)。用戶提交一個(gè)搜索內(nèi)容請(qǐng)求,Google服務(wù)器將查找超過20億的網(wǎng)頁內(nèi)容,并且將滿足用戶需求的目標(biāo)返回給用戶,一般來說這種處理只需要幾秒的時(shí)間。

2)緩存服務(wù)(Cache)。用戶提交一個(gè)URL,Google服務(wù)器將返回搜索器訪問該URL的最新記錄。這樣,用戶很容易復(fù)用Google的搜索成果。

3)拼寫檢查。該功能用于檢查用戶的查詢請(qǐng)求是否有效。用戶提交一個(gè)檢查內(nèi)容,Google服務(wù)器將返回有效的、最接近該內(nèi)容的查詢請(qǐng)求,返回的查詢請(qǐng)求將符合Google的查詢規(guī)則。

二、相關(guān)準(zhǔn)備工作

為了開發(fā)基于Java的程序,我們需要作如下準(zhǔn)備工作。

1)建立Java開發(fā)環(huán)境,Java SDK 1.3.1 或更新的版本。相關(guān)地址http:.//java.sun.com/J2SE

2)下載Google API的Jar文件,Googleapi.jar。開發(fā)人員可以到
http://www.google.com/apis下載。

3)申請(qǐng)Google訪問帳號(hào),目前Google支持免費(fèi)申請(qǐng)的方式,用戶需要使用一個(gè)email帳號(hào)來獲取新帳號(hào)。注意,目前免費(fèi)帳號(hào)支持每天1000條的最大查詢量。申請(qǐng)地址:
http://www.google.com/apis。

4)(可選) 如果用戶需要通過Java程序直接發(fā)送SOAP請(qǐng)求,開發(fā)人員需要下載相關(guān)的Java 軟件包,JAXM。下載地址:
http://java.sun.com/xml

三、SOAP的使用

Google提供了基于SOAP的Web Service,因此用戶可以向Google服務(wù)器提交SOAP的查詢請(qǐng)求,而后Google服務(wù)器將處理這些請(qǐng)求,并返回SOAP格式的查詢結(jié)果。以下就是一個(gè)查詢請(qǐng)求和查詢結(jié)果。

查詢:例如,有一個(gè)查詢請(qǐng)求,請(qǐng)求類型為搜索,查詢的內(nèi)容為“world cup”,帳號(hào)為“123456789”,如下為該查詢的一個(gè)例子。

<?xml version='1.0' encoding='UTF-8'?>

<SOAP-ENV:Envelope

xmlns:SOAP-ENV="
http://schemas.xmlsoap.org/soap/envelope/"

xmlns:xsi="
http://www.w3.org/1999/XMLSchema-instance"

xmlns:xsd="
http://www.w3.org/1999/XMLSchema">

<SOAP-ENV:Body>

<ns1: doGoogleSearch xmlns:ns1="urn:GoogleSearch"

SOAP-ENV:encodingStyle=

"
http://schemas.xmlsoap.org/soap/encoding/">

<key xsi:type="xsd:string">123456789</key>

<q xsi:type="xsd:string">"World Cup"</q>

<start xsi:type="xsd:int">0</start>

<maxResults xsi:type="xsd:int">10</maxResults>

<filter xsi:type="xsd:boolean">true</filter>

<restrict xsi:type="xsd:string"></restrict>

<safeSearch xsi:type="xsd:boolean">false</safeSearch>

<lr xsi:type="xsd:string"></lr>

<ie xsi:type="xsd:string">latin1</ie>

<oe xsi:type="xsd:string">latin1</oe>

</ns1: doGoogleSearch >

</SOAP-ENV:Body>

</SOAP-ENV:Envelope>

查詢結(jié)果:如果我們執(zhí)行以上查詢,可以得到如下的查詢結(jié)果。其中,查詢結(jié)果總共有約2660000記錄,使用時(shí)間為0.125012秒。Item標(biāo)記代表一條查詢結(jié)果,在第一條查詢結(jié)果中,網(wǎng)站的URL為
http://www.fifaworldcup.com。本例子僅僅列舉了一條查詢結(jié)果。

<?xml version="1.0" encoding="UTF-8"?>

<SOAP-ENV:Envelope xmlns:SOAP-ENV="
http://schemas.xmlsoap.org/soap/envelope/"

xmlns:xsi="
http://www.w3.org/1999/XMLSchema-instance"

xmlns:xsd="
http://www.w3.org/1999/XMLSchema">

<SOAP-ENV:Body>

<ns1:doGoogleSearchResponse

xmlns:ns1="urn:GoogleSearch"

SOAP-ENV:encodingStyle="
http://schemas.xmlsoap.org/soap/encoding/">

<return xsi:type="ns1:GoogleSearchResult">

<documentFiltering xsi:type="xsd:boolean">false</documentFiltering>

<estimatedTotalResultsCount xsi:type="xsd:int">

2660000</estimatedTotalResultsCount>

<directoryCategories

xmlns:ns2="
http://schemas.xmlsoap.org/soap/encoding/"

xsi:type="ns2:Array"

ns2:arrayType="ns1:DirectoryCategory[0]">

</directoryCategories>

<searchTime xsi:type="xsd:double">0.125012</searchTime>

<resultElements

xmlns:ns3="
http://schemas.xmlsoap.org/soap/encoding/"

xsi:type="ns3:Array" ns3:arrayType="ns1:ResultElement[10]">

<item xsi:type="ns1:ResultElement">

<cachedSize xsi:type="xsd:string">10k</cachedSize>

<hostName xsi:type="xsd:string"/>

<snippet xsi:type="xsd:string"></snippet>

<directoryCategory xsi:type="ns1:DirectoryCategory">

<specialEncoding xsi:type="xsd:string"/>

</directoryCategory>

<relatedInformationPresent xsi:type="xsd:boolean">

true

</relatedInformationPresent>

<summary xsi:type="xsd:string">

The official site from FIFA, made by Yahoo. Daily news updates and loads of relevant information.

</summary>

<URL xsi:type="xsd:string">

http://www.fifaworldcup.com

</URL>

<title xsi:type="xsd:string">

2002 FIFA <b>World</b>b>Cup</b>(tm)

</title>

</item>

...

</resultElements>

<endIndex xsi:type="xsd:int">10</endIndex>

<searchTips xsi:type="xsd:string"/>

<searchComments xsi:type="xsd:string"/>

<startIndex xsi:type="xsd:int">1</startIndex>

<estimateIsExact xsi:type="xsd:boolean">false</estimateIsExact>

<searchQuery xsi:type="xsd:string">

"science fiction"

</searchQuery>

</return>

</ns1:doGoogleSearchResponse>

</SOAP-ENV:Body>

</SOAP-ENV:Envelope>

四、使用Google API

Google為了提高開發(fā)人員的開發(fā)效率,提供了一套基于Java的API,用于直接訪問Google服務(wù)器。該API包裝了Google的Web Service,使用起來比Web Service更加方便。該API 包主要包括如下幾個(gè)類:

GoogleSearch :該類封裝了對(duì)于Google服務(wù)器的訪問,支持搜索和緩存(cache)功能。

GoogleSearchDirectoryCategory :表示Google中的一個(gè)分類目錄

GoogleSearchFault :該類為Exception的一個(gè)子類,用于表示API使用的錯(cuò)誤。

GoogleSearchResult :該類封裝了搜索的結(jié)果。

GoogleSearchResultElement:該類表示搜索結(jié)果中的每一條記錄。

如下是一個(gè)例子的源代碼,用于一個(gè)簡單查詢,查詢請(qǐng)求為”world Cup”,查詢的帳號(hào)為”123456789”。該例子將把查詢結(jié)果打印出來。如果用戶需要近一步解析查詢結(jié)果,可以使用GoogleSearchResult和GoogleSearchResultElement類。

import com.google.soap.search.*;

import java.io.*;

public class GoogleAPITest {

public static void main(String[] args) {

String clientKey="123456789";

String query="Word Cup";

// Create a Google Search object, set our authorization key

GoogleSearch s = new GoogleSearch();

s.setKey(clientKey);

try {

s.setQueryString(query);

GoogleSearchResult r = s.doSearch();

System.out.println("Google Search Results:"+t.toString());

} catch (GoogleSearchFault f) {

System.out.println("The call to the Google Web APIs failed:"+f.toString());

}

}

}

五、總結(jié)

Google搜索引擎提供了搜索、緩存和拼寫簡單功能,通過Web Service可以在不同的平臺(tái)、不同的語言使用,為了簡化SOAP的開發(fā),Google還提供了包裝了SOAP服務(wù)的Java API,這也大大提高了Java程序員的開發(fā)效率。隨著搜索內(nèi)容、形式的豐富,更多的開發(fā)人員可以將這種技術(shù)運(yùn)用在自己應(yīng)用程序中,擴(kuò)展應(yīng)用程度的功能。

發(fā)布:2007-03-25 13:23    編輯:泛普軟件 · xiaona    [打印此頁]    [關(guān)閉]
相關(guān)文章:
石家莊OA系統(tǒng)
聯(lián)系方式

成都公司:成都市成華區(qū)建設(shè)南路160號(hào)1層9號(hào)

重慶公司:重慶市江北區(qū)紅旗河溝華創(chuàng)商務(wù)大廈18樓

咨詢:400-8352-114

加微信,免費(fèi)獲取試用系統(tǒng)

QQ在線咨詢