日期:2011-07-31  浏览次数:20520 次

一.介绍:

  Web服务是微软提出的基于互联网的开发模型,一经提出即收到了业界的广泛推从。从目前的发展趋势来看,Web服务将引领下一代互联网的潮流。它是创建可互操作的分布式应用程序的新平台,是基于网络的、分布式的模块化组件。它执行特定的任务,遵守具体的技术规范,这些规范使得Web服务能与其他兼容的组件进行互操作。

  本文就向大家介绍如何运用VB.net来调用Google的Web服务,也就是如何在自己的应用程序中添加访问Google的服务的功能。文章中介绍的功能包括了Google提供的搜索功能、缓存功能以及拼写检查功能。我们运用的开发工具是VS.net中的VB.net。

  二.开发步骤:

  第一步,下载开发者工具箱(Developer's Kit)并申请一个许可证密钥(License Key)。你可以到http://www.google.com/apis/去下载开发者工具箱,里面包含了有关Google的Web服务的详细说明文档,你可以通过参考该文档开发出许多高级的应用。在下载完毕后,你必须申请一个许可证密钥,否则你无法访问其Web服务。

  第二步,新建一个VB.net项目。打开VS.net,新建一个项目,在项目类型中选择"Visual Basic项目",在模板中选择"Windows应用程序",同时不妨命名为"GoogleWebService"。

  第三步,添加Web引用。在"解决方案资源管理器"中选择该项目,并在右键菜单中选择"添加Web引用",在弹出的对话框的地址栏中填上Web服务的描述的地址URL(http://api.google.com/GoogleSearch.wsdl),图示如下:



图1

  在添加Web引用后,我们就可以像是在本机上一样调用其中的各种方法(Method)来为我们的程序服务,我们还可以像是在编写本机程序一样运用智能感知等VS.net开发工具的功能。在Web引用被成功添加后,"解决方案资源管理器"中就多了相应的Web服务引用了,图示如下:


图2


  同时,因为我们创建的项目是一个Windows应用程序,所以我们还得添加引用:System.Web.Services,这样我们才可以实现对Web服务的调用功能的开发。

  第四步,开发程序的主界面。你可以按照如下方式设计程序的主界面:


图3

 第五步,编写程序代码。下面我们为每个按钮的编写其消息相应函数。

  对于第一个按钮"开始搜索!",它的消息响应函数完成的功能如下:首先创建一个Google搜索的对象,然后根据你所输入的许可证密钥以及你要搜索的内容调用doGoogleSearch函数。不过我们在程序中只运用了该函数的一种简单的搜索功能,你可以试着使用不同的参数来完成更高级的搜索功能。最后从搜索的结果中分离出返回的结果数这一项并显示在程序的窗体中。该函数的实现如下:

Private Sub btnSearch_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSearch.Click
' 创建一个Google搜索对象
 Dim s As New Google.GoogleSearchService()
 Try
 ' 调用搜索功能
  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)
 Catch ex As System.Web.Services.Protocols.SoapException
  MsgBox(ex.Message)
 End Try
End Sub

  对于"缓存查询!"这个按钮的消息响应函数,其完成的功能是获取缓存页面的大小。它调用的方法为doGetCachedPage,通过该方法,程序可以获得缓存页面的字节数,然后根据该字节数显示缓存页面的大小。 其函数实现代码如下:

Private Sub btnCache_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCache.Click
' 创建一个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
End Sub

  对于"拼写检查!"按钮的消息响应函数,它完成的功能则是对用户的输入进行拼写检查。使用过Google搜索功能的人都知道,如果你一不小心输入错误的话,它会提示你正确的输入,这是因为它调用了内部的拼写检查功能。比如,我在Google中输入"Comparision of Chinese culture and western culture"的话,Google会提示我是否要搜索"Comparison of Chinese culture and western culture",一经它的提醒我才发现我把"Comparison"给拼错了。所以该按钮的消息响应函数调用了doSpellingSuggestion方法,调用之后如果获得了相应的拼写建议,则往往是你发生了拼写方面的错误了,并显示在窗体的文本框控件中。其函数的代码实现如下:

<