美文网首页
C++使用gSOAP调用WebService

C++使用gSOAP调用WebService

作者: 云谁之殇 | 来源:发表于2018-10-25 13:31 被阅读9次

    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.hstdsoap2.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);
    

    相关文章

      网友评论

          本文标题:C++使用gSOAP调用WebService

          本文链接:https://www.haomeiwen.com/subject/mdgqtqtx.html