C++调用WebService

1. gSOAP是一个开源的项目,用它可以方便的使用c/c++地进行SOAP客户端和服务器端编程,而不必了解xml和SOAP协议的细节

 

wsdl2h.exe: 编译wsdl文件生成c/c++头文件

-o 文件名,指定输出头文件
-n 名空间前缀 代替默认的ns
-c 产生纯C代码,否则是C++代码
-s 不要使用STL代码
-t 文件名,指定type map文件,默认为typemap.dat
-e 禁止为enum成员加上名空间前缀

 

soapcpp2.exe: gSOAP编译器,编译头文件生成服务器和客户端都需要的c/c++文件(默认使用STL,需要stlvector.h)

-C 仅生成客户端代码
-S 仅生成服务器端代码
-L 不要产生soapClientLib.c和soapServerLib.c文件
-c 产生纯C代码,否则是C++代码(与头文件有关)
-I 指定import路径(见上文)
-x 不要产生XML示例文件
-i 生成C++包装,客户端为xxxxProxy.h(.cpp),服务器端为xxxxService.h(.cpp)

 

2. 生成存客户端存根程序和框架
wsdl2h -o xx.h xx.wsdl
soapcpp2 -C xx.h (soapcpp2 xx.h -C -I D:/gsoap-2.7/gsoap/import)

 

3. 把如下生成的文件添加到项目:
soapStub.h,soapH.h,stdsoap2.h
soapC.cpp,soapClient.cpp,stdsoap2.cpp
soapxxWebServiceSoapProxy.h
xxWebServiceSoap.nsmap
wsock32.lib

 

4. 调用
#include soapxxWebServiceSoapProxy.h
#include xxWebServiceSoap.nsmap

 

//代理方式调用不需要初始化
//struct soap xxSoap;
//soap_init(&xxSoap);

 

//代理类对象
xxWebServiceSoap xxProxy; 

 

//设置头信息
//SOAP_ENV__Header envHeader;
//xxProxy.soap->header = &envHeader;

 

//web服务对象
_ns1__xx xx; 
 
//web服务结果对象 
_ns1__xxResponse xxResponse;

//调用WebService方法


5. 例子:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值