C++调用WebService
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 xxx.h xxx.wsdl(-t D:/gsoap-2.7/gsoap/typemap.dat)
soapcpp2 -L -x -i xxx.h(-I D:/gsoap-2.7/gsoap/import)
3. 或直接自己编写xxx.h,并生成xxx.wsdl
//gsoap ns service name: xxx
//gsoap ns service style: rpc
//gsoap ns service encoding: literal
//gsoap ns service location: http://localhost:8080
//gsoap ns schema namespace: http://localhost:8080/xxx.wsdl
int ns__add(int a, int b, int* result);
3. 客户端
1) 把如下生成的文件添加到项目:
stdsoap2.h,stdsoap2.cpp,
soapH.h,soapC.cpp,soapStub.h,
soapxxxProxy.h,soapxxxProxy.cpp,xxxSoap.nsmap
wsock32.lib
2) 代理方式调用
#include "soapTestWebServiceProxy.h"
#include "TestWebService.nsmap"
int main(int argc, char* argv[])
{
int result = 0;
TestWebServiceProxy proxy;
proxy.add(12, 23, &result);
} //www.sctarena.com
4. 服务端
1) 把如下生成的文件添加到项目:
stdsoap2.h,stdsoap2.cpp,
soapH.h,soapC.cpp,soapStub.h,
soapxxxService.h,soapxxxService.cpp,xxxSoap.nsmap
wsock32.lib
2) 实现接口函数
int TestWebServiceService::add(int a, int b, int *result)
{
*result = a+b;
return SOAP_OK;
} //www.m6wang.com
3) 开启服务
#include "soapTestWebServiceService.h"
#include "TestWebService.nsmap"
int main(int argc, char* argv[])
{
TestWebServiceService service;
service.run(8080);
}
C++调用WebService相关推荐
- java 调用webservice的各种方法总结
http://www.blogjava.net/zjhiphop/archive/2009/04/29/webservice.html 现在webservice加xml技术已经逐渐成熟,但要真正要用起 ...
- xml提示无法连接到远程服务器,异步调用WebService时,如何捕捉“无法连接远程服务器”异常...
在winform窗体中调用webservice,过程如下: ①Form1中弹出Form2 Form2 form2 = new Form2(); form2.ShowDialoag(); ②Form2中 ...
- 在Android中使用Android Ksoap2调用WebService
一.WebService介绍 WebService是基于SOAP协议可实现web服务器与web服务器之间的通信,因采用SOAP协议传送XML数据具有平台无关性,也是成为解决异构平台之间通信的重要解决方 ...
- Javascript+xmlhttp调用Webservice
1. 创建webservice,为了免于落俗我稍稍修改了创建webserice的默认webmethod.^_^ using System; using System.Web; using Syste ...
- [转]几种调用WebService的方法
1. 在JavaScript中调用WebService 1<script language="javascript"> 2function PostRequest ...
- java ee webservice_javaEE调用webservice总结【利用WSDL】(转载)
一.MyEclipse利用网上公开发布WSDL文件,创建WebService Client,进行调用WebService: 1. 打开MyEclipse,新建一个Web Project;然后新建 一 ...
- 调用webservice接口,数据不回滚问题
调用webservice接口,数据不回滚问题 使用cxf+spring框架开发webservice接口,在开发一个具有保存数据的接口功能时,如果数据发生了异常,对service层无论使用了xml配置声 ...
- Android使用ksoap2-android调用WebService学习
之前主要做客户端UI交互,很少处理数据和接触服务端,但现在的移动设备根本不可能离得开网络连接,数据的交换.最近学习的是在android端如何去调用远程WebService,都说WebService是一 ...
- Android调用WebService系列之对象构建传递
上一篇我们讲了如何封装Android调用WebService的能力,把上一章的类加入我们便有了与WebService通讯的能力.往往我们会遇到WebService调用是通过对象来进行实际交互调用的.于 ...
- C# 动态调用WebService
Reference from : http://blog.csdn.net/chuxiamuxiang/article/details/5731988 在C#程序中,若要调用WebService,一般 ...
最新文章
- JAVA调用SQL存储过程详解
- 【转】C#中数组复制的4种方法
- angularjs的表单验证
- python画环形图_用Python把图做的好看点:用Matplotlib画个环形图
- 4.Windows Server2012 R2里面部署 MVC 的网站
- 阿里云服务器用Docker配置运行nginx并访问
- 绕过限制,申请Google+
- SpringBoot 修改仓库
- 591. 标签验证器
- XcodeGhost作者声明:源于实验,无任何威胁
- Python字典集合数据结构深入理解
- Linux 查看日志命令tail的用法
- win10非核心版本的计算机上
- 【新手教程】51Sim-One Cloud 2.0如何接入被测算法
- cpython-36m-x86_64-linux-gnu.so undefined symbol玄学解决
- PHP微信公众平台开发高级篇--微信JS-SDK
- 橱柜图片-橱柜效果图-整体橱柜衣柜效果图如何选购
- 通过ffmpeg实时读取宇视摄像头的高清帧流数据,并保存4张图片进行4合一照片的生成。
- 量化分析入门2:上证指数走势图及移动平均线
- webug靶场渗透基础攻略