linux下利用gsoap实现webservice通信方法详解

本文详细介绍了如何在Linux环境下使用gSOAP工具进行webservice通信。内容包括gSOAP的作用、对接流程、反编译wsdl文件的步骤、相关工具的用法以及编码设置。通过示例代码展示C和C++调用gSOAP接口实现通信的方法。
摘要由CSDN通过智能技术生成

gSOAP编译工具提供了一个SOAP/XML 关于C/C++ 语言的实现,在数据接入其他平台,如C#、JAVA实现的一些webservice服务,在需要将数据对接其他设备的应用中,gSOAP可以为开发提供很大方便。

    一般的,一个webservice服务端,会提供一个wsdl文件、一个接入的url地址和一份对应的字段定义文档,有了这些资料,就可以使用gSOAP进行webservice对接。

    关于gSOAP的安装、部署、这里不做介绍,网上有很多相应的指导方法。

    在进行对接之前,首先要明确服务端使用的是soap1.1还是soap1.2,通常soap1.2可以兼容soap1.1,反之不行。

    gSOAP工具包中,有2个文件wsdl2h和soapcpp2,这两个工具文件用来根据wsdl文件反编译出一套代码,代码中含有服务的接口、以及接口对应的各个字段,可以根据需求生成c或c++的代码,在自己的代码中,将需要传输到服务端的字段拼装后,即可调用接口进行数据的传输。

  

反编译代码步骤:

1.使用wsdl2h工具,根据wsdl文件生成一个c/c++语法结构的头文件

    Wsdl2h–s –o 头文件名 wsdl文件名

    这一步将会得到一个头文件,如:head.h该步的目的:实现WSDL文件到.h文件的数据映射。

2.使用gSoap的预编译器soapcpp2。

根据上一步得到的头文件来生成存根文件(soapStub.h)和客户端代码框架。

/usr/local/gSOAP/bin/soapcpp2-i -x -C -L head.h

这一步将会得到几个.nsmap、.h和.cpp文件,如:calc.nsmap、soapC.cpp、soapH.h、soapStub.h、soapcalcProxy.cpp、soapcalcProxy.h

该步的目的:生成相应的底层通信代码。

 

注1 :wsdl2h的用法(WSDL/schema 解析和代码生成器)wsdl2h [opt] 头文件名 WSDL文件名或URL

wsdl2h常用选项

-o 文件名,指定输出头文件

-n 名空间前缀 代替默认的ns

-c 产生纯C代码,否则是C++代码

-s 不要使用STL代码

-t 文件名,指定type map文件,默认为typemap.dat

-e 禁止为enum成员加上名空间前缀

type map文件用于指定SOAP/XML中的类型与C/C++之间的转换规则。

如果不用s就会生成带STL的头文件,这样,在后边的编译中需要加入STL的头

stlvector.h,位于:gsoap/import/目录下。

注2 :soapcpp2的用法(编译和代码生成器)

soapcpp2 [opt] <

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值