c++Gsoap使用教程

一、下载最新gsoap包,下载完成解压就可以了。
二、把Wsdl2h.exe的目录设置成环境变量。
三、生成头文件
wsdl2h  -o xxx.h url(xxx.h为自己定义 的头文件名称,url为需要访问的webservice地址+?wsdl
注:执行此步骤时若输入url生成的头文件为空时,可以用webserver生成的.wsdl文件代替url。
四、将“\gsoap-x.x\gsoap\import”目录下的soap12.h、stl.h、stldeque.h、stllist.h、stlset.h、stlvector.h、复制到“gsoap-2.8\gsoap\bin\win32”中。 生成代码的时候要用到(若不在 gsoap-2.8\gsoap\bin\win32目录下生成则需要把这两个文件复制到当前目录下 ) 。x.x为版本号,根据自己的版本确定。
五、生成webService要调用的代码
-C 仅生成客户端代码  
-S 仅生成服务器端代码
-L 不要产生soapClientLib.c和soapServerLib.c文件  
-c 产生纯C代码,否则是C++代码(与头文件有关)  
-I  指定import路径(见上文)  · 
-x 不要产生XML示例文件
-i 生成C++包装,客户端为xxxxProxy.h(.cpp),服务器端为xxxxService.h(.cpp)。
根据自己的情况选择代码
例如:soapcpp2 -C -L -i -x xxx.h -I ../../import(xxx.h就是上边生成的 头文件)。
若提示“Critical error: #import: Cannot open File "stl.h" for reading”,吧stl.h文件复制过来就行。
六、在新工程中新建一个文件夹,将上一步生成的下列文件复制到新建的文件夹中。
1.soapC.cpp
2.soapH.h
3.xxxSoapProxy.h(此处的xxx为.wsdl文件的文件名)
4.xxxSoapProxy.cpp
5.soapStub.h
七、在“\gsoap-x.x\gsoap”目录下找到 stdsoap2.cpp 和stdsoap2.h 也复制到上一步的文件中去。
八、把xxx.nsmap(在第六步中生成的)中的文件添加到资源中。
九、在工程中开始调用。
1.构造webservice代理类。(xxxSoapProxy.h中定义的类)
2.定义发送请求的报文结构体。
3.给结构体赋值。
4.定义返回值得报文结构体。
5.使用代理类中webservice的方法。
6.取得返回结果。
 
 
 
 
备注:
1. .nsmap添加后 编译时会出现与其相关的错误如下图所示 添加WITH_NONAMESPACES 即可;
 
 2 .最好将webservice中的数组转换成宽字符不然汉子会乱码
转换方法是在当前目录创建typemap.dat文件并在文件中写入如下语句:
xsd__string = | std::wstring | wchar_t*
  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zxz520zmg

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值