Google的 C#与.NET编程

原文:http://book.csdn.net/bookfiles/433/10043315435.shtml

Google的 C#与.NET编程

使用C#与.NET框架创建Google搜索的GUI与console应用程序。
Google Web API开发工具包包含了一个C# Visual Studio .NET(http://msdn. microsoft.com/vstudio/)示例工程,这是一个简单的GUI Google搜索应用程序(在dotnet/Csharp目录下)。其核心功能由源文件Forml.cs中的代码实现。
该程序为简单的Google搜索控制台程序提供基本的代码,在功能上相似于[Hack #95]中的Perl(在结构上相似于[Hack #94]中的Java例子)
*****此程序的编译与运行要求先安装.NET框架(http://msdn.microsoft. com/netframework/downloads/updates/default.aspx)。

代码实现

将下面的代码保存到文本文件当中,命名为googly.cs,注意,将insert key here替换成用户自己的Google开发者密钥:
//googly.cs
//A Google Web API C# consol application
//Usage: googly.exe <query>


using System;
class Googly{
static void Main(string[] args){
//Your Google API developer's key
string googlekey = "NGYfW7dQFHKshnXPwvctLsaipk03YK2x";
//Take the query from command line.
if(args.Length !=1){
Console.WriteLine("usage:google.exe <query>");
return;
}
string query = args[0];
//create a google SOAP client proxy , generated by :
//c:\> wsdl.exe http://api.google.com/GoogleSearch.wsdl
GoogleSearchService googleSearch = new GoogleSearchService();
//Query Google
GoogleSearchResult results = googleSearch.doGoogleSearch(googlekey,query,0,10,false,"",false,"","latin1","latin1");
//no results?
if(results.resultElements == null) return;
//Loop through results.
foreach(ResultElement result in results.resultElements){
Console.WriteLine();
Console.WriteLine(result.title);
Console.WriteLine(result.URL);
Console.WriteLine(result.snippet);
Console.WriteLine();
}
}
}

编译代码

在编译C#代码之前,必须先创建一个Google SOAP的客户代理。这个代理程序得包含一大堆代码,并且得遵守GoogleSearch.wsdl文件中的说明规范,要对Google Web服务进行基于XML的描述,实现所有的方法、参数与返回值。谢天谢地,.NET框架工具包中已经包含一个应用程序——wsdl.exe——所有的代码工作都已经完成了,这就省得你自己动手了。
*****想一想,这太不可思议了:这么一个Web服务数据共享接口居然可以根据相应的Web服务描述文件自动生成!
调用wsdl.exe程序,并指定GoogleSearch.wsdl文件的位置,像下面这样:
C:\GOOGLY.NET>wsdl.exe GoogleSearch.wsdl
如果你手边没有WDSL文件,不要急,你可以为wsdl.exe指定WSDL文件在Google网站上的位置:
C:\GOOGLY.NET>wsdl.exe http://api.google.com/GoogleSearch.wsdl
最终的结果就是自动生成一个名为GoogleSearchService.cs的文件,下面就是它的源代码:
接着该编译googly.cs了:
c:\GOOGLY.NET\CS>csc /out:googly.exe *.cs

运行这个hack

在命令行运行Googly[见前言“如何运行hack”],将Google搜索条件作为参数传给它:
C:\GOOGLY.NET\CS>googly.exe "query words"
*****DOS命令行窗口的显示效果不好,而且当屏幕输出内容较多时,回卷功能可能不够用。我们可以将Google的查询结果发送到某个文件中,以便于用惯用的文字编辑器仔细查阅,这只需在命令行末尾加上>results.txt即可。
如下为一运行示例:
——Chris Sells与Rael Dornfest