C++调用WebService

发表于:2014-9-18 10:09

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:Sam.Richard    来源:51Testing软件测试网采编

  1. gSOAP是一个开源的项目,用它可以方便的使用c/c++地进行SOAP客户端和服务器端编程,而不必了解xml和SOAP协议的细节
  wsdl2h.exe: 编译wsdl文件生成c/c++头文件
  -o 文件名,指定输出头文件
  -n 名空间前缀 代替默认的ns
  -c 产生纯C代码,否则是C++代码
  -s 不要使用STL代码
  -t 文件名,指定type map文件,默认为typemap.dat
  -e 禁止为enum成员加上名空间前缀
  soapcpp2.exe: gSOAP编译器,编译头文件生成服务器和客户端都需要的c/c++文件(默认使用STL,需要stlvector.h)
  -C 仅生成客户端代码
  -S 仅生成服务器端代码
  -L 不要产生soapClientLib.c和soapServerLib.c文件
  -c 产生纯C代码,否则是C++代码(与头文件有关)
  -I 指定import路径(见上文)
  -x 不要产生XML示例文件
  -i 生成C++包装,客户端为xxxxProxy.h(.cpp),服务器端为xxxxService.h(.cpp)
  2. 生成存客户端存根程序和框架
  wsdl2h -o xx.h http://192.168.40.8:88/GMM?wsdl
  或者 wsdl2h -o xx.h http://js.gps163.com:8994/Server/CsService.svc?wsdl
  soapcpp2 -C -L -x -i xx.h (soapcpp2 xx.h -C -I D:\gsoap-2.7\gsoap\import)
  3. 把如下生成的文件添加到项目:
  soapStub.h,soapH.h,stdsoap2.h
  soapC.cpp,soapClient.cpp,stdsoap2.cpp
  soapBasicHttpBinding_USCOREIGMMProxy.cpp
  soapBasicHttpBinding_USCOREIGMMProxy.cpp
  BasicHttpBinding_USCOREIGMM.nsmap
  wsock32.lib
  4. 调用
#include "soapBasicHttpBinding_USCOREIGMMProxy.h"
#include "BasicHttpBinding_USCOREIGMM.nsmap"
//代理方式调用不需要初始化
//struct soap xxSoap;
//soap_init(&xxSoap);
//代理类对象
xxWebServiceSoap xxProxy;
//设置头信息
//SOAP_ENV__Header envHeader;
//xxProxy.soap->header = &envHeader;
//web服务对象
_ns1__xx xx;
//web服务结果对象
_ns1__xxResponse xxResponse;
//调用WebService方法
21/212>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号