网易博客旧文----gSoap简介

gSoap简介
2011-06-16 13:55:55| 分类: gSoap | 标签: |举报 |字号大中小 订阅

gSoap C++下的Web Service,是一个开源的跨平台的软件包,它帮你实现了通讯中soap协议。
官方网站为:http://gsoap2.sourceforge.net/

下载gsoap,不需要安装,解压后,目录\gsoap_2.7.17\gsoap-2.7\gsoap\bin\win32下为工作目录
当前使用的版本是2.7.17,由于对gsoap有改动,若需要使用新版本,则需要将对应的地方修改。
使用的两个工具为:wsdl2h.exe和soapcpp2.exe
wsdl2h.exe主要是把WEBSERVICE描述文件转换为c/c++头文件
soapcpp2.exe将转换后的c/c++头文件转换为命名空间文件,代理文件等一系列的文件

以下举一个实际例子来说明开发的过程,
若开发客户端,首先要拿到服务端提供的WSDL描述文件。
在控制台提示符下,进入\gsoap_2.7.17\gsoap-2.7\gsoap\bin\win32目录

gSoap简介 - xzhoumin - xzhoumin的博客

先使用wsdl工具:

wsdl2h -o calc.h http://www.genivia.com/calc.wsdl

gSoap简介 - xzhoumin - xzhoumin的博客

也可以将calc.wsdl文件下载到\gsoap_2.7.17\gsoap-2.7\gsoap\bin\win32
然后用

wsdl2h -o calc.h calc.wsdl
这样就生成了calc.h文件
前一种方式需要连接网络,后一种不需要连接网络
-o表示输出文件指定为calc.h
再使用soapcpp2工具
soapcpp2 -i -C -x -I…/…/import calc.h

gSoap简介 - xzhoumin - xzhoumin的博客
-i表示直接使用C++包装类
-C表示只生成客户端相关代码
-I…/…/import 表示 -I 指定import路径,主要是STL的文件
可以使用-x
-x 不要生成一堆的xml
即不要req和res的实例代码
如果需要看一下实际通讯的报文,可以不用-x,这样就有一些xml文件可供参考
此时生成的文件有:
soapC.cpp,soapH.h,soapStub.h,soapcalcProxy.h,soapcalcProxy.cpp,calc.nsmap

gSoap简介 - xzhoumin - xzhoumin的博客
在vc中新建另一个mfc工程,在工程下新建目录include,将上面工具生成的文件全部拷贝入
再将gsoap的stdsoap2.cpp和stdsoap2.h文件拷贝到include目录下
同时将.h和.cpp文件加入到工程中
在OnCreate函数中中加入测试代码
// 开始测试
calcProxy service;
double result;
if (service.add(1.0, 2.0, result) == SOAP_OK)
std::cout << "The sum of 1.0 and 2.0 is " << result << std::endl;
else
service.soap_stream_fault(std::cerr);

// 测试结束
包含文件
#include “./include/soapcalcProxy.h”
#include “./include/calc.nsmap”
即可测试客户端
注意需要连接网络

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值