使用 Visual Basic .NET 訪問 Google 的 Web 服務(MS)

來源:互聯網
上載者:User
google|visual|web|訪問 使用 Visual Basic .NET 訪問 Google 的 Web 服務

學習如何從 Visual Basic .NET Windows 前端訪問 Google 的 Web API 服務。本文說明如何調用 SOAP Web 服務、執行 Google 搜尋、訪問 Google 緩衝中的頁面,以及調用 Google 的拼字檢查器。

從 MSDN Code Center(英文)下載 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 次免費查詢的許可證。


相關文章

E-Commerce Solutions

Leverage the same tools powering the Alibaba Ecosystem

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。