用gSOAP开发Web Service程序.doc

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
用gSOAP开发Web Service程序

用gSOAP开发Web Service程序 2009-07-23 20:25:56 作者:毛毛 来源: 浏览次数:14604 网友评论 15 条 gSOAP是一个绑定SOAP/XML到C/C++语言的工具,使用它可以简单快速地开发出 SOAP/XML的服务器端和客户端。由于gSOAP具有相当不错的兼容性,通过gSOAP,我们就可以调用由 Java,.Net,Delhpi,PHP等语言开发的SOAP服务,或者向它们提供SOAP服务。 gSOAP是一个绑定SOAP/XML到C/C++语言的工具,使用它可以简单快速地开发出SOAP/XML的服务器端和客户端。由于 gSOAP具 有相当不错的兼容性,通过gSOAP,我们就可以调用由Java, .Net, Delhpi, PHP等语言开发的SOAP服务,或者向它们提供SOAP服务。 gSOAP的主页是: /projects/gsoap2 下载解压后,可以在gsoap\bin\win32 里 找到wsdl2h.exe和soapcpp2.exe(另外还有linux和mac版本)。 wsdl2h.exe 的作用是根据WSDL生成C/C++风格的头 文件 soapcpp2.exe 的作用是根据头文件自动生成调用远程 SOAP服务的客户端代码(称为存根:Stub)和提供SOAP服务的框架代码(称为框架:Skeleton),另外它也能从头文件生成WSDL文件。 gsoap\stdsoap2.cpp 则是gSOAP的核心代码,要使用 gSOAP只要在项目里包含这个文件以及由soapcpp2.exe生成的代码即可。另外还有个stdsoap2.c,内容与stdsoap2.cpp一 模一样,用于纯C项目。 gSOAP两大工具的用法 从WSDL中产生头文件 用法: wsdl2h -o 头文件名 WSDL文件名或URL wsdl2h常用选项 -o 文件名,指定输出头文件 -n 名空间前缀 代替默认的ns -c 产生纯C代码,否则是C++代码 -s 不要使用STL代码 -t 文件名,指定type map文件,默认为typemap.dat -e 禁止为enum成员加上名空间前缀 type map文件用于指定SOAP/XML中的类型与C/C++之间的转换规则,比如在wsmap.dat里写 xsd__string = | std::wstring | wchar_t* 那么SOAP/XML中的string将转换成std::wstring或wchar_t*,这样能更好地支持中文。 例: wsdl2h -o ayandy.h \ -n ay -t wsmap.dat \ /Service.asmx?WSDL 从/Service.asmx?WSDL 生成ayandy.h文件,名空间为ay,使用wsmap.dat指定的转换规则。 wsdl2h生成的头文件里的变量、类型等名称的前面都会加上名空间前缀,以两个下划线分隔。如上面的命令生成的头文件,有这样的定 义: class ay1__ArrayOfString; enum ay1__theDayFlagEnum { ay1__theDayFlagEnum__Today, ay1__theDayFlagEnum__Tomorrow, ay1__theDayFlagEnum__theDayafterTomorrow, }; 前面的ayandy1__ 的是名空间前缀,用以防止名称冲突。 wsdl2h的-n 选项可以改变这个名空间前缀(默认为ns )。对于枚举ay1__theDayFlagEnum 内 的成员,如果嫌它太长的话,可以用-e 命令选项禁止加入名空间前缀。 从头文件生成存根(stub)和框架(Skeleton)源文件 编写SOAP程序除了头文件是不够的,还要有连接、通信、XML解析、序列/反序列化等工作。gSOAP提供的socapcpp2.exe 就 是用于从头文件中生成这些代码的,我们只要关心真正的业务逻辑就行了。 用法 soapcpp2 头文件 例: soapcpp2 ayandy.h 将生成下面这些文件 soapStub.h // soap的存根文件,定义了ayandy.h里对应的远程调用模型 soapC.c soapH.h // soap的序列和反序列代码,它已经包含了soapStub.h,服务器端与客户端都要包含它 soapClient.c soapClientL

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档