利用gSOAP快速构建web服务客户端程序

本文详细介绍如何使用gSOAP工具快速搭建C/C++ Web服务。包括下载安装gSOAP,使用wsdl2h.exe生成接口头文件,通过soapcpp2.exe进行转换处理,以及在VC6.0环境下创建并运行一个简单的加法服务示例。

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

1、首先从http://sourceforge.net/projects/gsoap2/上下载最新gsoap源码,最新版本为gSOAP 2.8.14 stable。解压源代码,此处我解压至桌面。然后进入源代码bin目录,复制bin的全路径。

2、打开windows命令行编辑器,进入bin目录。

image

 

接着在命令行窗口键入命令:wsdl2h.exe –o calc.h http://www.genivia.com/calc.wsdl

image

3、在bin目录下我们会发现多了一个calc.h文件,这并不是我们需要的,我们还要用到soapcpp2.exe将其进行转换,转换之前,我们还需要将源代码import目录下的stlvector.h文件拷贝至当前目录下,然后在命令行窗口键入:soapcpp2.exe –i –C –Iimport calc.h

image

4、接着,打开VC6.0,新建一个控制台工程,将bin目录下文件除去两个exe和calc.h文件外其他文件全部复制到工程目录下,同时将源代码根目录下的stasoap2.cpp和stdsoap2.h文件复制到工程目录下。

编写如下代码:

#include "soapcalcProxy.h"
#include "calc.nsmap"
#include <IOSTREAM>
using namespace std;
int main()
{
    calcProxy service;
    double result;
    if(service.add(1.0,2.0,result) == SOAP_OK)
        cout << "The sum of 1.0 and 2.0 is " << result << endl;
    else
        service.soap_stream_fault(cerr);
    service.destroy();
    return 0;
}

5、然后将工程目录下.h和.cpp文件添加进工程中,然后编译运行!

image

6、编程成功以后,运行,最后程序效果如下图:

image

转载于:https://www.cnblogs.com/MrTan/archive/2013/02/25/2932164.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值