- 1、本文档共8页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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
您可能关注的文档
- 计算机图形学作业二.docx
- 国际投资银行面试技巧.doc
- 中国小吃的英文表达法.doc
- 顺磁物质影响研究new.doc
- 汉英法律专业词汇(法理、法制史、宪法学).doc
- 图形学openGL笑脸代码.doc
- 椭圆中点Bresenham算法.doc
- OpenGL程序,输出 学号、姓名、照片等信息。直线、线型、字体程序.docx
- 中国的数字文化观.doc
- 中国小吃英文表达列表.doc
- 员工安全生产法律法规培训.pdf
- DB11/2076-2022_民用建筑节水设计标准.pdf
- DB31_T 920-2015 产业园区服务规范.pdf
- 《架空绝缘配电线路设计标准》详细《架空绝缘配电线路设计标准+GB+51302-2018》详细解读解读.pdf
- 某县委书记在全县国资国企改革攻坚工作会议上的讲话.pdf
- 2023年春 形势与政策 第五讲 在新时代新征程上推进祖国统一.pdf
- 某市政治部主任“德能勤绩廉” 五方面述职述廉报告.pdf
- DB62-T3178-2020 保温装饰一体板技术标准.pdf
- 2024年秋季学期形势与政策 第三讲:加快发展新质生产力 (1).pdf
- 《既有建筑维护与改造通用规范+GB+55022-2021》详细解读.pdf
文档评论(0)