Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1569068
  • 博文数量: 884
  • 博客积分: 52280
  • 博客等级: 大将
  • 技术积分: 13060
  • 用 户 组: 普通用户
  • 注册时间: 2008-08-06 09:46
文章分类

全部博文(884)

文章存档

2008年(884)

我的朋友

分类: C/C++

2008-08-06 09:53:53

下载本文示例代码
下载示例工程

Google 网站上提供了goole search client api for Java和for dot.net的版本,大家可以参考.

For C/C 的版本特点如下
内置XML解析器.
内置gbk/utf-8编码/解码器(包含GBK编码表)
采用Pure C编写,采用标准C接口.
支持http代理.

用户需要在申请key
演示程序中的key是一个网友给我的,仅供测试用,演示程序中的代理可能连接不上,由于没有设置超时,可能处于等待状态(sorry.....)
函数中各个参数的意义和的说明一样,对此不作过多的介绍.

建议在此基础上开发二次应用,如封装成COM,但不得对作者提供的api进行反编译.
如需转载,请注明原作者,谢谢合作.欢迎交流.

函数接口

/************************************************************************/

			/*google search client api for c/c  */

			/*By littlestar,2003,TRS Open Lab*/

/************************************************************************/

//go  for more information

/*start primitive data types*/

#ifdef _SOAP_TYPES

typedef char * xsd__string;

typedef int xsd__int;

struct xsd__base64Binary 

{

	unsigned char *__ptr;

	int __size;

};

typedef bool xsd__boolean;

typedef double xsd__double;



/*end primitive data types*/



struct DirectoryCategoryArray 

{

	struct typens__DirectoryCategory * __ptr;

	int  __size;

	int  __offset;

};



struct typens__ResultElement

{

	xsd__string  summary;

	xsd__string  URL;

	xsd__string  snippet;

	xsd__string  title;

	xsd__string  cachedSize;

	xsd__boolean  relatedInformationPresent;

	xsd__string  hostName;

	struct typens__DirectoryCategory * directoryCategory;

	xsd__string  directoryTitle;

};



struct typens__doGoogleSearchResponse 

{

	struct typens__GoogleSearchResult * _return_;

};



struct typens__DirectoryCategory 

{

	xsd__string  fullViewableName;

	xsd__string  specialEncoding;

};



struct typens__GoogleSearchResult 

{

	xsd__boolean  documentFiltering;

	xsd__string  searchComments;

	xsd__int  estimatedTotalResultsCount;

	xsd__boolean  estimateIsExact;

	struct ResultElementArray * resultElements;

	xsd__string  searchQuery;

	xsd__int  startIndex;

	xsd__int  endIndex;

	xsd__string  searchTips;

	struct DirectoryCategoryArray * directoryCategories;

	xsd__double  searchTime;

};



struct ResultElementArray 

{

	struct typens__ResultElement * __ptr;

	int  __size;

	int  __offset;

};



struct typens__doSpellingSuggestionResponse 

{

	xsd__string  _return_;

};



struct typens__doGetCachedPageResponse 

{

	struct xsd__base64Binary * _return_;

};

#endif

//建立Soap连接

extern "C" int _stdcall CreateSoapSession(void **SoapSessionHandle,char 

*strServerAdd,char *key);



//设置代理服务器,支持http代理.

extern "C" int _stdcall SetSoapProxy(void *SoapSessionHandle,char 

*strProxyHost,int ProxyPort);



//页面检索

extern "C" int _stdcall doGoogleSearch(void *SoapSessionHandle, xsd__string 

 q, xsd__int  start, xsd__int  maxResults, xsd__boolean  filter, 

xsd__string  restrict_, xsd__boolean  safeSearch, xsd__string  lr, 

xsd__string  ie, xsd__string  oe, struct typens__doGoogleSearchResponse * 

out);



//取得google服务器上的缓存页面

extern "C" int _stdcall doGetCachedPage(void *SoapSessionHandle, 

xsd__string  url, struct typens__doGetCachedPageResponse * out );



//拼写检查

extern "C" int _stdcall doSpellingSuggestion(void *SoapSessionHandle, 

xsd__string  phrase, struct typens__doSpellingSuggestionResponse * out );



//取得SOAP错误消息

extern "C" char* _stdcall GetSoapErrorMessage(void *SoapSessionHandle);



//释放SOAP缓存.

extern "C" int _stdcall FreeSoapCache(void *SoapSessionHandle);



//释放Soap连接

extern "C" int _stdcall FreeSoapSession(void **SoapSessionHandle);
google 提供的wsdl文件






下载本文示例代码
阅读(191) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~