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

因为工作需要,接触到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

posted @ 2013-02-25 15:29  阿Q程序员  阅读(471)  评论(0编辑  收藏  举报