zoukankan      html  css  js  c++  java
  • C++调用C#WebService

      最近有个工作任务,需要在C++环境下调用WebService。网上找了很多资料,遇到各种问题折腾了两天,好在总算是搞定了。特此记录一下过程。

      1:安装gSOAP

      我是通过gSOAP的方式访问的WebService。那么首先要下载gSOAP,下载地址:http://sourceforge.net/projects/gsoap2/。我下载的版本是2.8的,直接解压在桌面上,路径:C:Usersxsooy-pcDesktopgsoap-2.8。

      2:生成WebService头文件

      运行CMD,进入控制台管理器。进入gSOAP的win32目录下:

      

      在这个路径下建立一个字符转换规则文件wsmap.dat,文件内容为xsd__string = | std::wstring | wchar_t*,那么SOAP/XML中的string将转换成std::wstrin或wchar_t*,这样能更好地支持中文。

      我的WebService地址是:http://t.os.gs.cn/api/cn_2017.asmx。

           生成头文件: 

      

      -o 文件名,指定输出头文件 
      -n 名空间前缀 代替默认的ns 
      -c 产生纯C代码,否则是C++代码 
      -s 不要使用STL代码 
      -t 文件名,指定type map文件,默认为typemap.dat 
      -e 禁止为enum成员加上名空间前缀

       执行命令后,当前目录下多了一个WebService.h的头文件:

      

      3:根据WebService头文件生成其他文件

      

      

      -C 仅生成客户端代码 
      -S 仅生成服务器端代码 
      -L 不要产生soapClientLib.c和soapServerLib.c文件 
      -c 产生纯C代码,否则是C++代码(与头文件有关) 
      -I 指定import路径(见上文) 
      -x 不要产生XML示例文件 
      -i 生成C++包装,客户端为xxxxProxy.h(.cpp),服务器端为xxxxService.h(.cpp)

      执行完之后,目录下的文件结构如下:

      

      4:新建C++控制台程序,并添加引用文件

      

      把生成文件加到项目里面来,上级目录中的这两个文件也加进来:

      

      注意引用进来的cpp文件取消预编译,否则会出错。

      

      5:最后附上源代码

      http://download.csdn.net/detail/springxie9851/9888626

      

     

      

  • 相关阅读:
    一步一步实现一个简单的OS(简单的让boot载入setup)
    hdu 1203 I NEED A OFFER!(01背包)
    面向服务与微服务架构
    ThreadLocal,LinkedBlockingQueue,线程池 获取数据库连接2改进
    deeplearning.net 0.1 document
    怎样有效的降低反复的代码
    redmine 自己定义字段mysql表结构
    c语言中使用宏,需要注意的的几点
    gcc自有的define语法,解决变量多次自加的问题
    ubuntu16.04 安装docker
  • 原文地址:https://www.cnblogs.com/springxie/p/7117627.html
Copyright © 2011-2022 走看看