C++生成webservice客户端代码以及调用

准备

A、准备要调用的webservice接口的wsdl地址或wsdl文件

B、准备gsoap工具(下载地址:https://sourceforge.net/projects/gsoap2/files/)

使用

1、解压下载好的gsoap文件包,进入win32目录,将要生成客户端代码的wsdl文件复制到该目录下

2、在该目录下打开cmd窗口,输入以下命令生成头文件

.\wsdl2h.exe -o .\MBDWebService.h .\MBDWebService.wsdl

或已知该wsdl地址(该地址必须可访问)

.\wsdl2h.exe -o .\MBDWebService.h http://www.webxml.com.cn/WebServices/ MBDWebService?wsdl

生成头文件

3、根据MBDWebService.h头文件生成客户端代码,输入一下命令

.\soapcpp2.exe -C .\MBDWebService.h -I D:\c++callwebservice\gsoap_2.8.134\gsoap-2.8\gsoap\import -x

生成客户端代码如下:

4、使用

a、打开vs2015创建win32控制台应用程序

b、把刚才创建出来的客户端代码以及stdsoap2.h和stdsoap2.cpp复制到创建好的项目目录下

复制到创建好的项目目录中

c、在Vs2015中引入这些文件,添加-》现有项

d、在soapClient.cpp文件中可以看到调用的webservice接口的输入和输出,必要时需要修改地址中的ip和端口

e、调用:

        struct soap m_oSoap; // SOAP的客户端

       class _ns1__downloadFileNetDocAndCreateNC input; // WebService调用输入对象

       class _ns1__downloadFileNetDocAndCreateNCResponse response; // WebService返回对象

       // SOAP初始化

       soap_init(&m_oSoap);

       // 调用函数的参数赋值

       string strName = "1223455";

       input.xml = strName;

       // 发送WebService请求,并获得返回结果

       int nResult = soap_call___ns1__downloadFileNetDocAndCreateNC(&m_oSoap, NULL, NULL, &input, response);

       // 操作成功

       if (SOAP_OK == nResult)

       {

              // 输出返回结果

              string strResult = response.downloadFileNetDocAndCreateNCReturn;

              wcout.imbue(locale("chs"));

              wcout << "wcout:" << strResult.c_str() << endl;

       }

       /// 关闭SOAP

       soap_destroy(&m_oSoap);

       soap_end(&m_oSoap);

       soap_done(&m_oSoap);

       system("pause");

注意:

在打包时,需要将所有生成的cpp文件修改属性:在项目中的cpp上右键属性,选择不使用预编译头

  • 25
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值