1、从sourceforge下载最新的gSOAP
2、解压后,到bin\win32
目录下
3、使用命令参数-h
查看帮助
PS> .\wsdl2h.exe -h
PS> .\soapcpp2.exe -h
4、使用wsdl2h.exe
生成头文件
PS> .\wsdl2h.exe -x -n WS -o WhetherService.h http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?WSDL
# 参数说明:
# -n 使用WS代替默认的ns前缀
5、使用soapcpp2.exe
生成其他文件
.\soapcpp2.exe -x .\WhetherService.h -p WhetherService -C -L -I E:\C++\gsoap_2.8.70\gsoap-2.8\gsoap\import
# 参数说明:
# -p 使用WhetherService代替默认的文件名soap前缀
# -C 只生成客户端代码
# -L 不生成soapClientLib/soapServerLib文件
# -I 指定import目录
6、将生成的文件添加到工程中,并添加stdsoap2.h
和stdsoap2.cpp
,可在gsoap目录下找到这两个文件。
7、在使用的地方添加头文件,就可以使用了
#include "WhetherServiceStub.h"
#include "WeatherWebServiceSoap.nsmap"
soap soap;
_WS1__getSupportCity getSupportCity;
_WS1__getSupportCityResponse getSupportCityResponse;
string strAddress = "http://www.webxml.com.cn/WebServices/WeatherWebService.asmx";
soap_init(&soap);
soap_set_mode(&soap, SOAP_C_UTFSTRING);
string strProvince = As_Utf8FromString("北京");
getSupportCity.byProvinceName = &strProvince;
soap_call___WS1__getSupportCity(&soap, strAddress.c_str(), NULL, &getSupportCity, getSupportCityResponse);
for (int i = 0; i < getSupportCityResponse.getSupportCityResult->string.size(); i++)
{
//.......
}
soap_destroy(&soap);
soap_done(&soap);
网友评论