[Windows Mobile]gSoap客户端使用步骤与问题解决
gSoap客户端使用步骤与问题解决
简要说明
gSoap是一个开源的C\C++ webservice客户端与服务端项目,可以生成wsdl接口并在客户端使用。
Webservice本质就是HTTP+XML,gSoap封装了HTTP报头和soap协议的XML格式。并且它针对不同平台都实现了基于IP/TCP的通信(socket)。所以使用gSoap非常简单.
使用步骤
- 到官网下载gSoap的最新版本,并解压.(文章以gsoap_2.7.16为例)
关心的几个目录
\gsoap_2.7.16\gsoap-2.7\gsoap;
\gsoap_2.7.16\gsoap-2.7\gsoap\bin;
\gsoap_2.7.16\gsoap-2.7\gsoap\import;
\gsoap_2.7.16\gsoap-2.7\gsoap\WS;
- 在C:盘下新建一个文件夹为gsoap,把\gsoap_2.7.16\gsoap-2.7\gsoap\import和\gsoap_2.7.16\gsoap-2.7\gsoap\WS拷贝过去,那么C:\gsoap\下会有import和WS两个文件夹。
- 新建一个工程,将gsoap\bin下的 wsdl2h.exe、soapcpp2.exe ;gsoap下的stdsoap2.cpp和stdsoap2.h拷贝到工程目录下,
- 打开命令提示行, 进入工程目录,输入 wsdl2h.exe –I”c:\gosap\WS”–s –o ***.h webservcie地址
- soapcpp2.exe –I”c:\gosap\import”***.h
- 把soapc.cpp、soapclient.cpp、stdsoap2.cpp 加入工程
- 代码中使用时 引入”***proxy.h”和”***.nsmap”
问题
问题1:soap_LONG642s 无法连接
将stdsoap2.cpp中的 #ifndef WITH_LEAN改为#ifdef WITH_LEAN
问题2:中文乱码问题
- soap_set_mode(soap, SOAP_C_UTFSTRING);
- 把要发送的字符串转为UTF-8
参考文献:
[1]《用gSOAP开发Web Service程序》 http://www.cppprog.com/2009/0723/138.html
[2]《用gSOAP更简单地实现Web Services Client》 http://blog.csdn.net/sharetop/archive/2008/06/20/2568266.aspx
[3]《s60下webservice的例子》 http://topic.csdn.net/u/20080616/10/70369760-ddd8-48b0-ac96-c18da0be773d.html
[4]《VisualStudio环境下GSOAP开发指南》 http://blog.csdn.net/IamNieo/archive/2009/04/10/4061652.aspx
[5]《gSOAP中文文档》http://www.cppblog.com/woaidongmao/archive/2008/05/28/51400.aspx