码迷,mamicode.com
首页 > 编程语言 > 详细

gsoap、c++。webservice的client。

时间:2018-02-05 20:05:35      阅读:127      评论:0      收藏:0      [点我收藏+]

标签:color   stl   type   har   输出   bar   pem   proxy   workspace   

背景需求。

1、有一个webservice的server端。具体表现为一个link——http:\\XXXXXXXXXXXXXXXXXXX.com?wsdl

2、下载一个最gsoap包,(自行前往官网下载)。解压目录为 D:\workspace\2、LIS\gsoap-2.8。

操作流程。

1、在 bin\win32 目录下建一个空的头文件WebService.h(好像可以不用做);

2、再建立一个字符转换规则文件wsmap.dat,文件内容为xsd__string = | std::wstring | wchar_t*(为了某种程度上支持中文);

3、启动cmd,进入到 \bin\win32 目录,调用wsdl2h.exe生成头文件接口定义,命令为:(生成.h文件)

wsdl2h -o WebService.h -n WS -t wsmap.dat http://XXXXXXXXXXXXXXXXXXXXXX.asmx?WSDL

此步完成后,WebService.h文件里面就有内容了。

wsdl2h 的操作命令如下:

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

4、在命令行输入soapcpp2 -j WebService.h(解析WebService.h,生成存根程序);

然后生成的文件中包含server和client。做client千万不要把server加入其中。

整个项目的源文件列表如下:

main.cpp(玩家手动生成)

soapC.cpp(本步骤生成)

soapH.h(本步骤生成)

soapLimsInfoServiceImplServiceSoapBindingProxy.cpp(本步骤生成)

soapLimsInfoServiceImplServiceSoapBindingProxy.h(本步骤生成)

soapStub.h(本步骤生成)

stdsoap2.cpp(gsoap文件夹下有)

stdsoap2.h(gsoap文件夹下有)

5、新建项目。额外的文件列表入步骤4.

在工程的头文件中加入#include “WeatherWSSoap.nsmap”,否则会有命名空间编译出错的问题.

6、我的main代码

 1 #include "soapLimsInfoServiceImplServiceSoapBindingProxy.h"
 2 
 3 #include "LimsInfoServiceImplServiceSoapBinding.nsmap"
 4 
 5 using namespace std;
 6 
 7 int main()
 8 {
 9     LimsInfoServiceImplServiceSoapBindingProxy webservice;
10 
11     WS1__getPatientInformation barcode = WS1__getPatientInformation();
12 
13     WS1__getPatientInformationResponse pantientRes = WS1__getPatientInformationResponse();
14 
15     string tmp = "157961253";
16     barcode.WS1__barcode = &tmp;
17 
18     int result = webservice.getPatientInformation(&barcode, pantientRes);
19 
20     if (SOAP_OK == result)
21     {
22         cout << *pantientRes.out;
23     }
24 
25     cin.get();
26     return 0;
27 }

 

 

 

gsoap、c++。webservice的client。

标签:color   stl   type   har   输出   bar   pem   proxy   workspace   

原文地址:https://www.cnblogs.com/wuzhenyang/p/8418933.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!