Google,baidu,等等...不鸟他们!!! 我要用自己开发的分布式文件系统、分布式调度系统、分布式检索系统,做自己的搜索引擎!!!大鱼有大志!!! ---杨书童
type map文件用于指定SOAP/XML中的类型与C/C++之间的转换规则,比如在wsmap.dat里写
那么SOAP/XML中的string将转换成std::wstring或wchar_t*,这样能更好地支持中文。
例:
从http://www.ayandy.com/Service.asmx?WSDL 生成ayandy.h文件,名空间为ay,使用wsmap.dat指定的转换规则。
wsdl2h生成的头文件里的变量、类型等名称的前面都会加上名空间前缀,以两个下划线分隔。如上面的命令生成的头文件,有这样的定义:
前面的ayandy1__的是名空间前缀,用以防止名称冲突。 wsdl2h的-n选项可以改变这个名空间前缀(默认为ns)。对于枚举ay1__theDayFlagEnum内 的成员,如果嫌它太长的话,可以用-e命令选项禁止加入名空间前缀。
编写SOAP程序除了头文件是不够的,还要有连接、通信、XML解析、序列/反序列化等工作。gSOAP提供的socapcpp2.exe就 是用于从头文件中生成这些代码的,我们只要关心真正的业务逻辑就行了。
编写SOAP客户端下面将演示使用gSOAP到网上取得天气预报,互联网上有不少网站提供SOAP服务,比如Google提供的搜索API(现在已不再提 供新的License Key了),不少博客提供的API等。这里介绍一个提供天气预报服务的SOAP服务,地址是http://www.ayandy.com它提供了三个函数:getSupportCity 查询本天气WebService支持的城市信息。 getSupportProvince 查询本天气 WebService支持的省份信息。 getWeatherbyCityName 根据城市名称获得天 气情况。 它的WSDL地址是http://www.ayandy.com/Service.asmx?WSDL现在,我们编写一个客户端去调用getWeatherbyCityName来 取得天气情况1. 从WSDL得到头文件