用 WebXml 提供的“腾讯QQ在线状态 WEB 服务”做示范。Web 服务链接如下:
- Endpoint: http://webservice./webservices/qqOnlineWebService.asmx
- Disco : http://webservice./webservices/qqOnlineWebService.asmx?disco
- WSDL : http://webservice./webservices/qqOnlineWebService.asmx?wsdl
Endpoint: http://webservice./webservices/qqOnlineWebService.asmx
Disco : http://webservice./webservices/qqOnlineWebService.asmx?disco
WSDL : http://webservice./webservices/qqOnlineWebService.asmx?wsdl 一种简单使用 gSOAP 的步骤如下:
- 1. 另存 http://webservice./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. 再补充。
1. 另存 http://webservice./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./webservices/qqOnlineWebService.asmx");
-
- _ns1__qqCheckOnline qq;
- qq.soap = &proxy;
- std::string qqCode("5515060");
- qq.qqCode = &qqCode;
-
- _ns1__qqCheckOnlineResponse qqResponse;
- proxy.qqCheckOnline(&qq, &qqResponse);
- std::cout << *qqResponse.qqCheckOnlineResult << std::endl;
- return 0;
- }
#include "qqOnlineWebServiceSoap.nsmap"
#include "soapqqOnlineWebServiceSoapProxy.h"
#include <string>
#include <iostream>
int main()
{
qqOnlineWebServiceSoapProxy proxy("http://webservice./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./~engelen/soapdoc2.html
- 2. http://www./KB/webservices/CurrencyConvertor.aspx
- http://www./KB/webservices/CurrencyConvertor2.aspx
- 3. http://www.cnblogs.com/Lvkun/archive/2010/03/30/gSoap_Note.html
- 4. http://www./qiujian5628/archive/2008/06/19/54019.html
|