Gsoap 编译工具提供了一个SOAP/XML 关于C/C++ 语言的实现,
从而让C/C++语言开发web服务或客户端程序的工作变得轻松了很多。
用gsoap开发web service的大致思路
我们开发webservice应用,大致有两个方向:
1. API接口固定,不关心底层的通讯,将SOAP作为应用层协议
2. 通讯协议固定(当然需要基于XML的)或只有wsdl,将SOAP作为“传输层”协议
一、根据WSDL文件开发WebService客户端,访问Java的WebService服务端
WSDL标准接口文件的解析说明可参考WSDL相关资料。
一、根据.h头文件开发C++的WebService服务端,Java用客户端访问
1.定义APi接口函数
如:calc.h文件接口编写
//calculater
//gsoap api service name: calc
//gsoap api service style:
rpc
//gsoap api service encoding:
encoded
//gsoap api service location:
http://localhost:10086/
//gsoap api service namespace:
http://basecode.soapapp
//gsoap api schema namespace:
http://basecode.soapapp/message
typedef char*
xsd__string;
typedef int xsd__int;
//加法接口
int api__add
(
xsd__int num1,
xsd__int num2,
xsd__string desc,
xsd__int & result
);
使用soapcpp2命令编译:
soapcpp2 -S -p calc -j calc.h 生产服务端代码
#include "soap/calcH.h"
#include "soap/calc.nsmap"
#include "soap/stdsoap2.h"
6.测试:使用SoapUi工具建立工程,加载到WSDl文件,其端口号要与监听的端口一致。
注意:服务端的接口返回值必须是int类型,如果需要返回结果其它信息需要使用引用参数,
引用参数可以是基础类型,或者自己封装的结构体类型。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。