用 WebXml 提供的“腾讯QQ在线状态 WEB 服务”做示范。Web 服务链接如下:
Endpoint: http://webservice.webxml.com.cn/webservices/qqOnlineWebService.asmx Disco : http://webservice.webxml.com.cn/webservices/qqOnlineWebService.asmx?disco WSDL : http://webservice.webxml.com.cn/webservices/qqOnlineWebService.asmx?wsdl一种简单使用 gSOAP 的步骤如下:
1. 另存 http://webservice.webxml.com.cn/webservices/qqOnlineWebService.asmx?wsdl 为 WSCheckQqOnline.wsdl 2. 在命令行执行: wsdl2h -o WSCheckQqOnline.h WSCheckQqOnline.wsdl 3. 在命令行执行: soapcpp2 -C -L -i -IE:\gSOAP\gsoap-2.8\gsoap\import -x WSCheckQqOnline.h 4. 把第 3 步生成的下列 8 个文件添加到工程中: (1) soapStub.h // -> 头文件 (2) soapH.h // -> 头文件 (3) soapC.cpp // -> 源文件 (4) soapqqOnlineWebServiceSoapProxy.h // -> 头文件 (5) soapqqOnlineWebServiceSoapProxy.cpp // -> 源文件 (6) qqOnlineWebServiceSoap.nsmap // -> 工程目录(当做 .cpp 文件) (7) stdsoap2.h // -> 头文件 (8) stdsoap2.cpp // -> 源文件 5. 在 main.cpp 中先后添加: #include "qqOnlineWebServiceSoap.nsmap" #include "soapqqOnlineWebServiceSoapProxy.h" 6. 再补充。示例代码:
#include "qqOnlineWebServiceSoap.nsmap" #include "soapqqOnlineWebServiceSoapProxy.h" #include <string> #include <iostream> int main() { qqOnlineWebServiceSoapProxy proxy("http://webservice.webxml.com.cn/webservices/qqOnlineWebService.asmx"); // 创建 qqCheckOnline 第一个参数 _ns1__qqCheckOnline qq; qq.soap = &proxy; std::string qqCode("5515060"); qq.qqCode = &qqCode; // 创建 qqCheckOnline 第二个参数 _ns1__qqCheckOnlineResponse qqResponse; proxy.qqCheckOnline(&qq, &qqResponse); std::cout << *qqResponse.qqCheckOnlineResult << std::endl; return 0; }VS2008中目录结构:
可参考链接:
1. http://www.cs.fsu.edu/~engelen/soapdoc2.html 2. http://www.codeproject.com/KB/webservices/CurrencyConvertor.aspx http://www.codeproject.com/KB/webservices/CurrencyConvertor2.aspx 3. http://www.cnblogs.com/Lvkun/archive/2010/03/30/gSoap_Note.html 4. http://www.cppblog.com/qiujian5628/archive/2008/06/19/54019.html