使用 Visual Basic .NET 訪問 Google 的 Web 服務
2024-07-10 13:01:46
供稿:網友
使用 visual basic .net 訪問 google 的 web 服務
學習如何從 visual basic .net windows 前端訪問 google 的 web api 服務。本文說明如何調用 soap web 服務、執行 google 搜索、訪問 google 緩存中的頁面,以及調用 google 的拼寫檢查器。
從 msdn code center(http://msdn.microsoft.com/downloads/sample.asp?url=/msdn-files/026/002/863/msdncompositedoc.xml)。(英文)下載 vbgoogledemo.exe
下載示例(http://download.microsoft.com/download/visualstudionet/doc_samp/7.0/nt5xp/en-us/vbgoogledemo.exe)
目錄
web 服務真酷
示例窗體
過程
有關異常處理的一點說明
小結
如何獲取工具包和許可證密鑰
web 服務真酷
web 服務(英文)方興未艾,是最激動人心的技術,正對 internet 和商業產生巨大的影響。使用 web 服務可以以常規方式開展業務,而將 internet 作為傳輸工具,通過防火墻執行遠程過程調用。google 是提供公共 web 服務的先驅之一,允許任何開發人員訪問 google 的搜索、緩存和拼寫檢查服務。visual studio .net 簡化了訪問 google web api 服務各種功能的過程。
示例窗體
圖 1 顯示了示例窗體的界面。它包含一個文本框,用于輸入 google 許可證密鑰(請參閱補充說明“如何獲取 google web api 工具包和許可證密鑰”),還包含三個區域用于測試三種 google 功能。在第一個區域中輸入搜索文本,將返回結果的數目。在第二個區域中輸入 web 站點,將返回 google 緩存中頁面的大小。在第三個區域中調用 google 拼寫檢查功能,將返回檢查值。
圖 1:正在運行的窗體
過程
了解窗體的功能后,讓我們來看看對窗體進行編碼的步驟。主要包括四個步驟:
引用 web 服務
創建執行搜索的功能
創建檢查緩存大小的功能
創建調用拼寫檢查的功能
引用 google web 服務
引用 google web 服務的步驟如下:
創建新的 windows forms(windows 窗體)項目。
右鍵單擊該項目。
選擇 add web reference(添加 web 引用)。
注意:add web reference(添加 web 引用)選項與 visual basic 6 中的 add reference(添加引用)類似,不同之處在于,現在您可以訪問位于不同網絡上的 xml web service,而不是訪問 com 組件的所有方法。優點在于,這種訪問的類型是確定的,而且可以像觸發任何本地對象一樣觸發智能感知。
在 address(地址)文本框中,鍵入 web 服務描述的位置 (http://api.google.com/googlesearch.wsdl)。
單擊 add reference(添加引用)按鈕,導入 web 服務定義。
導入定義后,轉到 solution explorer(解決方案資源管理器),然后打開樹上的 web references(web 引用)節點。
右鍵單擊 google 引用并選擇 rename(重命名),重命名引用。
拖動上面顯示的窗體。
為每個按鈕添加代碼。雙擊每個按鈕(與在 visual basic 6 中一樣),即可訪問觸發單擊事件時運行的方法。讓我們依次看看各個按鈕。
執行 google 搜索
查看列表 1 中 btnsearch_click 方法的代碼,我們可以看到創建了一個新的 googlesearchservice 對象。在下一行中,創建了一個新的 googlesearchresult 對象,并且使用了在一行中聲明和創建對象的 visual basic .net 新功能。在 visual basic .net 中,以下兩段代碼是等效的:
dim x as string = "hello"
和
dim x as string
x = "hello"
創建 result 對象(通過向搜索對象傳遞 google 許可證密鑰、搜索文本和其他參數創建)后,使用 estimatedtotalresultscount 屬性填寫標簽。在四行代碼中,調用了一個 web 范圍內的過程,執行了一個 google 搜索,并發送了結果的數目。
本示例簡單說明了如何使用搜索服務。有關搜索請求的參數和返回數據的詳細信息,請參閱 google 的參考文檔。
' 創建 google 搜索對象。
dim s as new google.googlesearchservice()
' 調用搜索方法。
dim r as google.googlesearchresult =
s.dogooglesearch(txtlicensekey.text, txtsearchterm.text, 0, 1, _
false, "", false, "", "", "")
' 提取并顯示估計的搜索結果的數目。
dim estresults as integer = r.estimatedtotalresultscount
lblsearchresults.text = cstr(estresults)
列表 1:btnsearch_click 方法
獲取 web 頁面的大小
如列表 2 所示,獲取 google 服務器上緩存的 web 頁面的大小很容易。這里調用了 dogetcachedpage 方法,并將其指定給字節數組,然后由數組提供其長度。
' 創建 google 搜索對象
dim s as new google.googlesearchservice()
' 調用 dogetcachedpage 方法并獲取緩存字節
dim bytes() as system.byte = _
s.dogetcachedpage(txtlicensekey.text, txtcachepage.text)
' 顯示緩存頁面的長度
lblcacheresults.text = cstr(bytes.length)
列表 2:btncache_click 方法
執行拼寫檢查
最后一種 google 方法調用 google 引擎的拼寫檢查功能。調用了 googlesearchservice 對象上的 dospellingsuggestion 方法,如果獲得結果,我們就簡單地顯示這些結果。
' 創建 google 搜索對象
dim s as new google.googlesearchservice()
' 請求拼寫建議
dim suggestion as string = _
s.dospellingsuggestion(txtlicensekey.text, txtspell.text)
' 顯示建議(如果有)
if suggestion is nothing then
lblspellresults.text = "<無建議>"
else
lblspellresults.text = suggestion
end if
列表 3:btnspell_click 方法
有關異常處理的一點說明
下載的代碼將所有功能都包含在 try...catch 塊中(參見列表 4)。使用此塊可以捕獲從 soap web 服務中返回的任何錯誤,并在消息框中顯示這些錯誤。最常見的錯誤通常會在忘記輸入許可證密鑰時出現。要獲取許可證密鑰,請參閱如何獲取工具包和許可證密鑰。
' 創建 google 搜索對象
dim s as new google.googlesearchservice()
try
' 調用 dogetcachedpage 方法并獲取緩存字節
dim bytes() as system.byte = _
s.dogetcachedpage(txtlicensekey.text, txtcachepage.text)
' 顯示緩存頁面的長度
lblcacheresults.text = cstr(bytes.length)
catch ex as system.web.services.protocols.soapexception
msgbox(ex.message)
end try
列表 4:包含異常處理的 btncache_click 方法
小結
visual basic .net 提供了一種在 web 上訪問 web 服務的簡單方法。將這種功能添加到您的“智囊”中,可以獲得一種新功能 - 正如添加 com 對象和 activex 控件能夠為 visual basic 6 應用程序添加新功能一樣。您還可以嘗試將 google 的拼寫檢查功能添加到基于 web 的消息板中,或者嘗試自動監控 web 以獲得特定問題的最新信息。要獲得更多靈感,還可以搜索 web(嘗試搜索“vb google api applications”)查找其他 visual basic 開發人員使用 google web api 開發出來的應用程序。希望大家開心!
如何獲取工具包和許可證密鑰
要訪問 google web api 工具包并請求許可證密鑰,請訪問 http://www.google.com/apis/(英文)并按照其說明進行操作。您可以下載開發人員工具包并創建自己的 google 帳戶,經過電子郵件確認后,它會為您提供一個每天可以進行 1,000 次免費查詢的許可證