gsoap的使用

linux下gsoap的初次使用     这两天,接到一个项目,需要在linux程序中调用远程的web应用,通过soap协议。开始上网查了下资料,发现了gsoap库这个好东东^_^。继续在网上搜索例子代码,发现基本都不可编译通过,于是便一边学习一边写了这个最简单的例子,希望对后来者起到一点帮助。对gsoap的简单介绍,请自己参阅http://gsoap2.sourceforge.net/    下载相应的包,主要有2个工具和源代码 阅读详情

gsoap是C/C++开发WebService的框架。

gsoap提供了wsdl2h和soapcpp这两个工具用于生成框架代码。

wsdl2h

顾名思义,这是将.wsdl文件生成.h文件的工具。wsdl(Web Service Define Language)描述了WebService方法。但只有WebService的描述还不够,还要有实现WebService的机制,于是soap就派上了用场。soap(Simple Object Access Protocol)基于HTTP协议,它定义了WebService双方的通信协议。gsoap内部实现了soap协议,gsoap能够根据wsdl描述生成通信框架代码,于是我们只需要提供wsdl来说明将要实现哪些WebService,剩下的工作就交由gsoap来做了。

现如果你对wsdl还不了解,可参考http://www.w3school.com.cn/wsdl/wsdl_intro.asp。

以下wsdl定义了一个通过昵称获取个人信息的WebService,文件命名为user.wsdl。

  1 <?xml version="1.0" encoding="utf-8"?>
  2 <definitions name="User"
  3 targetNamespace="www.homesilk.net/service/user"
  4 xmlns="http://schemas.xmlsoap.org/wsdl/"
  5 xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
  6 xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
  7 xmlns:SOAP="http://schemas.xmlsoap.org/wsdl/soap/" 
  8 xmlns:xsd="http://www.w3.org/2000/10/XMLSchema" 
  9 xmlns:tns="www.homesilk.net/service/user"
 10 >
 11 <message name="nickname">
 12         <part name="nickname" type="xsd:string" />
 13 </message>
 14 <message name="user">
 15         <part name="nickname" type="xsd:string" />
 16         <part name="name" type="xsd:string" />
 17         <part name="sex" type="xsd:int" />
 18         <part name="birthday" type="xsd:string" />
 19 </message>
 20 <portType name="UserPortType">
 21         <operation name="getUser">
 22                 <input message="tns:nickname" />
 23                 <output message="tns:user" />
 24         </operation>
 25 </portType>
 26 <binding name="User" type="tns:UserPortType">
 27         <SOAP:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" />
 28         <operation name="getUser">
 29                 <input>
 30                         <SOAP:body use="literal"/>
 31                 </input>
 32                 <output>
 33                         <SOAP:body use="literal"/>
 34                 </output>
 35         </operation>
 36 </binding>
 37 </definitions>
然后运行./wsdl2h -N user -c user.wsdl,会生成user.h文件。

-N user 指定了service前缀(命名空间)为user,如果你使用-n user,那么service前缀将会变为user1,因为-n指定的是命名空间前缀而不是命名空间。

-c指定生成C语言风格的头文件。

message节点、portType节点、binding节点均为wsdl定义的节点。

message描述了传递的参数,所有的输入(输出)信息组合为一个message,本例中输入信息只有一个nickname,输出信息有四个部分。

当然你可能会想能不能将输入(输出)信息分为不同的message,答案是不行的,原因在于portType这个节点下的operation至多只接收两个参数,在operation中你没有多余的空间放置额外的message。

portType节点指定了不同message的组合,它和函数指针的功能类似,指定了输入、返回值,也即是portType已经决定了service接口。

binding节点指定了提供给外界的接口,以及信息传输过程中使用的协议,信息编码。

soapcpp2

通过wsdl2h我们产生了user.h,接下来就该用这个头文件生成WebService框架了。

运行./soapcpp2 -c user.h,

生成了

User.nsmap

soapH.h、soapStub.h

soapC.c、soapClient.c、soapClientLib.c、soapServer.c、soapServerLib.c

User.getUser.req.xml、User.getUser.res.xml

User.nsmap的内容如下

  1 
  2 #include "soapH.h"
  3 SOAP_NMAC struct Namespace namespaces[] =
  4 {
  5         {"SOAP-ENV", "http://schemas.xmlsoap.org/soap/envelope/", "http://www.w3.org/*/soap-envelope", NULL},
  6         {"SOAP-ENC", "http://schemas.xmlsoap.org/soap/encoding/", "http://www.w3.org/*/soap-encoding", NULL},
  7         {"xsi", "http://www.w3.org/2001/XMLSchema-instance", "http://www.w3.org/*/XMLSchema-instance", NULL},
  8         {"xsd", "http://www.w3.org/2001/XMLSchema", "http://www.w3.org/*/XMLSchema", NULL},
  9         {"user", "www.homesilk.net/service/user", NULL, NULL},
 10         {NULL, NULL, NULL, NULL}
 11 };

我们在user.wsdl中指定了命名空间:SOAP-ENV、SOAP-ENC、xsd在这里都出现了,并且还多了xsi、user这两个命名空间,xsi是gsoap自动添加的,而user则对应于我们运行./wsdl2h -N user -c user.wsdl时通过-N指定的命名空间。SOAP-ENV、SOAP-ENC是soap协议必须的参数,xsi、xsd在解析传递的参数时起到了作用。

User.getUser.req.xml是service请求的xm格式,User.getUser.req.xml是service响应的xm格式。


[gSOAP]MFC调用WEBService gSOAP编译工具提供了一个SOAP/XML 关于C/C++ 语言的实现,从而让C/C++语言开发web服务或客户端程序的工作变得轻松了很多。 gSOAP官网:点击打开链接 我现在只想说:gSOAP就是个傻瓜相机——非常好用! 本文介绍如何利用gSOAP,达到在MFC下调用WEBService的API的目的。仅客户端。 工具&环境: 0、WIN XP 1、V 阅读详情

相关推荐

GSoap使用

最近要做一个客户端是用来和Web进行交互的。 以前也没有用过GSoap昨天研究了一天,今天早上抽时间写了篇文档,发上来和大家分享一下。 时间比较急也就倒腾了一天,有什么不足的地方还请大家给点建议。 一.    Gsaop简介: GSoap是一个夸平台的,用于开发Web S

Forkerl的专栏 1559

C++: gsoap 使用调用 webservice

C++ :gsoap 使用教程,安装、依赖与接口调用、免费公共接口(股票、翻译、航班、火车、QQ在线状态等)、接口测试以及其他调用接口方法(包含调用工具)

belien 2055

gsoap实现webservice服务

在实现Web服务时,使用gSOAP是一个很好的选择,因为它提供了强大的工具和库来创建SOAP和RESTful服务。gSOAP是一个C和C++语言开发的库,它支持SOAP协议的各种版本,包括SOAP 1.1和SOAP 1.2。本文讲使用gSOAP来实现一个简单的Web服务的步骤。 程序右以在windows上开发调试,调试通过后再发布到linux上运行。通过本文步骤,你应该能够创建一个简单的C++ SOAP服务端、客户端来,并测试你的SOAP服务. Web Services 协议栈。服务端自动生成WSDL

搬砖工 1667

qt wsdl 接口调用(gsoap)

qt wsdl 接口调用(gsoap)

chen1231985111的博客 1919

基于奥比中光Orbbec Astra Pro与ROS实现实时3D环境建模:orb_slam2实战指南

本文提供了一份详细的实战指南,介绍如何使用奥比中光Orbbec Astra Pro深度摄像头与ROS系统,部署并运行ORB-SLAM2算法,实现实时3D环境建模与定位。内容涵盖从驱动安装、环境配置、算法编译到摄像头标定与性能调优的全流程,旨在帮助开发者快速搭建一套高性价比的视觉SLAM系统。

weixin_29054399的博客 335

Unity卡牌游戏UI框架:数据驱动与模块化设计实践

在Unity游戏开发中,UI系统是连接玩家与游戏逻辑的关键桥梁,其核心在于实现数据与表现的高效同步。数据驱动设计通过分离数据模型、逻辑状态与视图表现,利用观察者模式自动响应状态变化,确保了代码的清晰与可维护性。这种架构显著提升了开发效率,尤其在需要复杂状态管理和实时反馈的交互场景中,如卡牌游戏的拖拽、布局与动画系统。基于模块化思想,开发者可以将卡牌视图、布局管理、区域控制等组件像积木一样组合,快速构建出动态的手牌弧形布局、战场区域管理等特色功能。通过集成对象池、图集优化等性能方案,还能有效管理绘制调用与网格

weixin_34262482的博客 453

gsoap工具生成wsdl接口 注意事项

wsdl是通过wsdl文件作为不同应用的通信接口,所以如何生成wsdl语言很重要,但是很多时候我们发现自己编写的头文件通过gsoap工具soapcpp2.exe从头文件中无法正常生成对应的wsdl语言,几经寻找,终于发现: 通过对应头文件.h生成客户端或服务器代理代码的时候,对应的头文件中的注释描述信息和对外接口都需要有规定的格式才能正确生成wsdl语言文件。 1、如过头文件中导出函数命名没...

weixin_30810239的博客 490

VXLAN技术详解

VXLAN(虚拟可扩展局域网)是一种Overlay二层虚拟化技术,通过MAC-in-UDP封装在IP网络上构建大规模虚拟二层网络。核心组件包括VTEP(隧道端点)、24位VNI(支持1600万个虚拟网络)和VXLAN网关。相比VLAN,VXLAN具有超大规模扩展、跨三层互联、支持虚拟机无缝迁移等优势,适用于云数据中心多租户隔离、跨数据中心互联等场景。其基于IP路由的封装方式无需改造物理网络,为现代云网络提供了弹性、安全的虚拟化解决方案。

kjkdd的博客 595

gsoap使用方法,解析wsdl文档

下载gSoap http://sourceforge.net/projects/gsoap2 1.下载完成后直接解压缩,在目录gsoap-2.8\gsoap\bin下面有编译工具,支持多个平台,我们使用的是win32平台的工具     wsdl2h.exe  解析WebService的wsdl文件     soapcpp2.exe 编译WebService代码 2.接

ljpmtjbydd的博客 2332

Mac上除了Homebrew,这几种安装ADB的方法你可能也需要知道(含手动配置避坑)

本文全面解析Mac上五种ADB安装方案,从Homebrew到手动配置,涵盖常见问题解决与环境变量配置。特别针对macOS High Sierra等老旧系统提供专属解法,帮助开发者高效安装Android Debug Bridge(ADB),避免常见陷阱,提升开发效率。

weixin_42546392的博客 322

大模型选型实战:为OpenClaw匹配最优“大脑”的全维度考量

大模型不是越贵越好,也不是参数越高越好,适合自己的使用场景才是最好的。按照我的方法,先明确自己的需求,再选对应的模型,配置多模型自动路由,既能保证体验,又能最大限度降低成本。我自己用这套配置用了半年多,不管是写文章、写代码还是处理复杂问题,都完全够用,成本也很低,大家可以参考一下。如果不知道选什么模型,可以在评论区说一下你的使用场景。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 343

gSOAP教程之客户端调用WSDL(一)

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_33794672的博客 962

串口通信协议

文章目录前言一、串口通信结构图二、电平三、串口通信协议 前言 本文记录的是平时常用的串口通信有关知识点 提示:以下是本篇文章正文内容,下面案例可供参考 一、串口通信结构图 1、RS232标准串口通讯结构图 2、USB转串口通讯结构图 3、原生的串口到串口 二、电平 串口通信的时候,有三种电平:TTL电平、RS232电平、USB电平 TTL电平是从MCU直接出来的电平 RS323是一种通讯标准,因为高电平+15V低电平–15V电位差30V容错空间大,抗干扰能力强,一般用于工业设备直接通信电平转换芯

weixin_43772611的博客 6851

Gsoap使用精华总结

Gsoap使用总结一、相关知识简介关于soap:1、SOAP 是基于 XML 的简易协议,可使应用程序在 HTTP 之上进行信息交换。或者更简单地说:SOAP 是用于访问网络服务的协议。2、SOAP 提供了一种标准的方法,使得运行在不同的操作系统并使用不同的技术和编程语言的应用程序可以互相进行通信。3、关于Soap,它是一种简单对象访问协议,是一种轻量的、简单的、基于 XML 的协议,它被设计成在...

yuanxue_vaq的博客 1万+

C#winform自定义绘制曲线控件实例

本文实例讲解自定义绘制曲线控件过程。 在实际项目中,需要绘制曲线,系统的提供的绘制曲线的控件有时不能满足自己的需要,需要根据项目需要定制开发曲线控件。 实例目标,实时绘制显示温湿度值曲线。

qq_30725967的博客 1734

SAP RAP 里的 EML 全解:从语言定位到事务语义,再到真实案例的落地方式

摘要:EML(Entity Manipulation Language)是ABAP RAP模型的核心组件,作为ABAP的子集用于操作业务对象(BO)。它通过声明式语法(READ/MODIFY/EXECUTE/COMMIT)统一访问BO的行为与数据,并由RAP运行时自动处理校验、锁定、草稿管理等生命周期。EML将业务语义融入代码,确保与Fiori应用共享同一套校验逻辑,并通过FAILED/REPORTED/MAPPED管道传递错误与消息。其事务控制(IN LOCAL MODE与COMMIT ENTITIES)

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 528

gsoap使用总结

WebService、soap、gsoap基本概念 WebService服务基本概念:就是一个应用程序,它向外界暴露出一个可以通过web进行调用的API,是分布式的服务组件。本质上就是要以标准的形式实现企业内外各个不同服务系统之间的互调和集成。 soap概念:简单对象访问协议,是一种轻量的、简单的、基于XML的协议,它被设计成在WEB上交换结构化的和固化的信息。 从这里的概念可以看得出...

深之JohnChen的专栏 1万+

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

gsoap使用

************************************************************************** gsoap的官网地址:https://www.genivia.com,包含商业版,以及GPLv2的开源版本。 1、下载地址:https://www.genivia.com/download/gsoap-2.8.54.zip,发布版本中包含平台无关...

zyy_linux的博客 3104

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

gSOAP的使用

1.介绍 gSOAP编译工具提供了一个SOAP/XML 关于C/C++ 语言的实现,从而让C/C++语言开发web服务或客户端程序的工作变得轻松了很多。绝大多数的C++web服务工具包提供一组API函数类库来处理特定的SOAP数据结构,这样就使得用户必须改变程序结构来适应相关的类库。与之相反,gSOAP利用编译器技术提供了一组透明化的SOAP API,并将与开发无关的SOAP实现细节相关的内容对用

Derry的专栏 4232

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

基于gsoap的onvif抓图

搭建基于onvif的gsoap框架

Hidin的博客 1352

linux gsoap 教程,Linux 平台gsoap简单使用

gsoap下载地址:https://sourceforge.net/projects/gsoap2/?source=typ_redirect1、编译生成soapcpp2下载解压之后 跳转gsoap-2.8 目录,执行./configurecd gsoap/ 执行 make会在src目录下生成soapcpp22、创建test目录新建add.h 头文件 内容如下int ns2__add( int n...

weixin_36340890的博客 583

gsoap的用法总结

用gSOAP开发Web Service程序 gSOAP是一个绑定SOAP/XML到C/C++语言的工具,使用它可以简单快速地开发出SOAP/XML的服务器端和客户端。由于gSOAP具有相当不错的兼容性,通过gSOAP,我们就可以调用由Java, .Net, De

zhaiwenjuan的专栏 5244

Linux下gSoap的使用

因工作需要用到webService与别的公司进行数据对接功能实现。故记录下gSoap的demo。下篇将介绍在项目中怎么使用gSoap。 1、下载gSoap。 gSoap下载地址: http://sourceforge.net/projects/gsoap2/files/ 下载好了会有一个名字为gsoap_2.8.70.zip的压缩包。 2、安装gSoap。 【a】解压gsoap_...

学习———— 6119

gsoap使用方法及心得

gSOAP是一个夸平台的,用于开发Web Service服务端和客户端的工具,在Windows、Linux、MAC OS和UNIX下使用C和C++语言编码,集成了SSL功能。  下载地址:http://sourceforge.net/projects/gsoap2官方网站:http://genivia.com/Products/gsoap/index.html 对于Window

鹏程万里--扬帆起航 1万+
上一篇: 数据分组的技巧
下一篇: sockaddr_tipc分析
henujava
博客等级 码龄17年 5粉丝 18原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值