使用 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 次免费查询的许可证