gSOAP开源工具包学习资料收集

1 篇文章 0 订阅
1 篇文章 0 订阅

http://genivia.com/Products/gsoap/tutorial.html

http://www.cppblog.com/qiujian5628/archive/2008/06/19/54019.html  windows版

http://www.cppblog.com/flyinghare/archive/2012/08/15/187267.html linux版

http://blog.csdn.net/waxgourd0/article/details/7641845 windows版

http://blog.csdn.net/lingfemg721/article/details/6947934 windows版

http://hi.baidu.com/2sky2sea/item/1b791c4a8b6660eda4c06664 linux版

http://www.cnblogs.com/linxr/archive/2011/10/17/2215285.html linux版


http://blog.csdn.net/yui/article/details/6171428  这位仁兄写的一系列关于gSOAP 的文章很好。


笔记:

-----------------------------------------------------------
环境:win 7,MS 2005


1. 配置环境变量 PATH,将gSOAP可执行程序所在路径添加进去,如 C:\gsoap-2.8\gsoap\bin\win32
2. 创建WebService客户端
wsdl2h -c -o stock.h http://webservice.webxml.com.cn/WebServices/ChinaStockWebService.asmx?wsdl

soapcpp2 -C stock.h -IC:\gsoap-2.8\gsoap\import //这里使用-I参数

然后,无疾而终……


-----------------------------------------------------------
环境: redhat 4.6 64bit
1. 安装gSOAP: 
./configure --prefix=/opt/gsoap-2.8
make && make install
配置环境变量 PATH, LD_LIBRARY_PATH

2. 创建WebService客户端
wsdl2h -c -s -o stock.h http://webservice.webxml.com.cn/WebServices/ChinaStockWebService.asmx?wsdl  //生成纯C代码,不使用stl

soapcpp2 -C stock.h //仅生成客户端代码

gcc -O2 -o stock stock.c soapC.c soapClient.c -I/opt/gsoap-2.8/include -L/opt/gsoap-2.8/lib –lgsoap //生成客户端调用WebService程序

说明:
1. wsdl2h 中的wsdl URL由 WebService 服务端提供,stock.h 是由此生成的头文件。
2. 根据生成的头文件进一步生成客户端存根程序和相关的头文件、资源文件。
3. WebService 对应的C函数接口及输入参数、输出参数在生成的头文件 soapStub.h 中,接口函数以 soap_call_ 开头,
   接口函数的前三个参数都是固定的,与接口相关的输入输出参数紧跟其后。stock.c 由自己编写,其中实现调用 WebService 接口这个过程。示例直接参考 http://blog.csdn.net/yui/article/details/6171428 中的stock.c 。
4. C程序链接的库为 libgsoap.a, C++ 链接的库为 libgsoap++.a.
-----------------------------------------------------------

中文乱码问题解决

如果 WebService 接口的输入或输出参数中含有中文,默认可能会乱码。参考 http://blog.csdn.net/yui/article/details/5758906 可解决该问题。

两个要点:

 一、设置 soap_set_mode(&soap, SOAP_C_UTFSTRING);

 二、使用 iconv 进行字符编码转换。

-----------------------------------------------------------

解决在链接生成自己的动态库时遇到:libgsoap.a(libgsoap_a-stdsoap2.o): relocation R_X86_64_32S against `a local symbol' can not 
be used when making a shared object; recompile with -fPIC 问题。

在编译安装 gsoap 时,在 ./configure 之前设置gcc,g++编译参数: 

$ export CFLAGS="-fPIC"

$ export CXXFLAGS="-fPIC" 

再 ./configure, make && make install ,再编译链接自己的动态库,便能成功。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值