`
yang_min
  • 浏览: 342197 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

标准C/C++程序通过gSOAP调用WebService

阅读更多
一、 环境准备
在本文中,所有程序均在Linux下开发完成,经测试能够正常运行。
在开发过程中,我们需要用到gSOAP,可以从以下网址下载获得:[url]http://www.cs.fsu.edu/~engelen/soap.html[/url]
我下载的是gsoap_2.7.12.tar.gz
下载下来解压缩,按正常安装过程进行编译、安装。
# tar zxvf gsozp_2.7.12.tar.gz
# cd gsoap_2.7.12
# ./configure –-prefix=/usr/local/gSOAP(指定安装路径)
# make
# make install
二、 生成相关文件
1、通过WSDL文档,生成C/C++头文件
# /usr/local/gSOAP/bin/wsdl2h –c –o TestHeader.h [url]http://192.168.0.151:8080/services/TestWS?wsdl[/url]
2、拷贝gSOAP源代码中import文件夹下的stlvector.h文件到TestHeader.h同一目录,如果在解析WSDL文档时使用了-s参数,即不使用STL,则不需要拷贝这一文件。
3、解析TestHeader.h文件,生成存根程序
# /usr/local/gSOAP/bin/soapcpp2 –c –C TestHeader.h
命令中参数-c代表生成标准C程序,若没有这个参数,则生成C++程序。
命令中参数-C代表仅生成客户端程序,若没有这个参数,则默认生成客户端和服务端程序。
三、 进行相关开发
1、新建工程
新建一个C的工程,并将刚刚生成的文件拷贝到工程中,设置工程属性,包含gSOAP源代码目录,链接属性处,需要包含文件libgsoap.a(使用C语言开发)或者libgsoap++.a(使用C++开发)。
2、代码开发
WebService的具体调用方式可以参见生成的soapStub.h文件。
Demo代码(调用WebService的addUser):
#include “soapH.h” 
#include “TestHeaderHttpBinding.nsmap” 

int main() 
{ 
        struct soap clientSOAP; 
        struct _ns1__addUser addUserMsg; 
        struct _ns1__addUserResponse addUserResponse; 

        soap_init(&clientSOAP); 

        addUserMsg.in0 = “test”; 
        addUserMsg.in1 = “test”; 
        addUserMsg.in2 = “test”; 

        if(soap_call___ns1__addUser(&clientSOAP, NULL, NULL, &addUserMsg, &addUserResponse) == SOAP_OK) 
        { 
                printf(“%s\n”, *addUserResponse.out); 
        } 
        else 
        { 
                printf(“Error\n”); 
        } 
         
        soap_destroy(&clientSOAP); 
        soap_end(&clientSOAP); 
        soap_done(&clientSOAP); 

        return 0; 
}
 
正常的话,编译运行后能够在控制台看到WebService返回的处理结果。
在这段代码中,_ns1__addUser、_ns1__addUserResponse、soap_call___ns1__addUser都是在soapStub.h中获得,具体应用可能会根据不同的服务端生成不同的代码。
分享到:
评论

相关推荐

    C/C++通过gsoap调用webservice接口

    gSOAP提供了一套编译器和运行时库,可以自动生成用于访问Web服务的客户端代码,使得C/C++程序能够与符合WS-I标准的任何SOAP服务进行通信。 首先,为了在VS2010中使用gSOAP,你需要下载并安装gSOAP的开发包。安装...

    C++通过gSOAP调用webservice方法返回自定义实体类

    C++做客户端,通过gSoap调用webservice,所调用的webservice方法返回的是自定义实体类,如果返回int,String等基本数据类型,这很容易实现;但这里函数返回的是List,Course,List甚至是Object,应该很有价值!

    C++使用gsoap调用webservice接口

    标题"\"C++使用gsoap调用webservice接口\"\"指出,这个资源是关于如何在C++项目中使用gSOAP库来与Web服务进行交互。gSOAP不仅实现了SOAP协议,还支持HTTP(S)传输,这使得它能够处理基于HTTP的安全通信。 描述中提到...

    c++通过gsoap调用webservices实例

    Web服务则提供了一种标准的方法,使不同系统间能够通过网络交换数据。gSOAP库是C和C++编程语言的一个开源工具包,它使得开发人员可以方便地访问和实现Web服务。在这个实例中,我们将探讨如何使用gSOAP在C++中调用Web...

    在Linux下通过gSOAP调用WebService例子

    代码在Linux5.6 64下编译通过,代码中调用http://www.cs.fsu.edu/~engelen/calc.wsdl提供的WebService接口。文件中相应的文件由gSOAP工具生成,详细操作说明请看我的博客。

    C++环境下使用gsoap开发WebService接口操作指南

    然后,对C++与WebService的关系进行了介绍,包括使用gsoap开发WebService程序的必要性和gsoap的功能特点。 一、WebService 简介 WebService是一种在线应用服务,可以在任何支持网络通信的操作系统中实施运行。它是...

    VC++使用gsoap调用WebService接口

    本文将深入探讨如何使用VC++通过gSOAP库来调用WebService接口,结合提供的资源,包括"使用方法.doc"、"gsoap-2.8ok.rar"、"VC++使用gsoap调用webservice接口.rar"以及"HelpFile.txt",我们将逐步解析这个过程。...

    gSOAP C/C++ 开发WebService

    gSOAP是著名的开源工具,专为C和C++开发者设计,用于构建Web服务客户端和服务器端应用程序。这个工具包提供了一种高效、灵活且易于使用的框架,使得在C/C++中实现SOAP(Simple Object Access Protocol)协议变得...

    C++通过gSOAP开发WebService客户端.docx

    C++通过gSOAP开发WebService客户端 本文档主要介绍了使用C++语言和gSOAP库开发WebService客户端的步骤和方法。gSOAP是一个基于C/C++的WebService开发库,支持SOAP和XML协议。下面是开发WebService客户端的详细步骤...

    C++通过gSoap访问webService

    通过gSoap,开发者可以将这些定义转换为C++代码,使得C++应用程序能够直接调用Web服务的方法。 1. **设置环境**:在Visual Studio 2010中创建一个新的C++项目。你需要先下载并安装gSoap,然后将其包含到你的项目...

    源码_qt程序通过gsoap访问webservice.zip

    当我们谈论“qt程序通过gsoap访问webservice”时,这涉及到两个关键组件:Qt框架和gSOAP库。 Qt是一个流行的开源C++图形用户界面库,不仅支持桌面应用,还支持移动和嵌入式平台。它提供了丰富的功能,包括UI设计、...

    VS2010使用c++、gSOAP调用WebService 源码

    通过以上步骤,开发者可以成功地使用VS2010、C++和gSOAP来创建一个Web服务客户端,调用远程服务并处理返回的数据。这个过程涉及到了软件工程的多个方面,包括编译、链接、网络通信和错误处理,对于深入理解C++和Web...

    C++通过gSOAP调用java webservice方法返回自定义实体类

    C++做客户端,通过gSoap调用java发布的webservice,所调用的java方法返回的是自定义实体类,如果返回int,String等基本数据类型,这很容易实现;但这里函数返回的是List,Course,List甚至是Object,应该很有价值! ...

    C++、C#写的WebService(gsoap)相互调用

    首先,C#创建和调用WebService相对直观,只需要在方法上添加[WebMethod]特性,然后将服务部署在IIS上,客户端可以通过添加服务引用轻松调用。然而,C++实现WebService通常会借助gsoap工具,这是一个用于生成SOAP Web...

    c++调用webservice(包括静态和动态以及webservice源码)

    本篇文章将详细讲解如何在C++中调用WebService,包括静态和动态方式,并探讨相关的源码实现。 首先,让我们理解什么是WebService。WebService是一种基于XML的开放标准,允许不同平台和应用程序之间进行互操作。它...

    gsoap开发包 C/C++开发webservice用到的gsoap开发包

    通过gSOAP开发包,C/C++开发者能够轻松地创建符合SOAP标准的Web服务,实现与其他系统和服务的互操作性。无论你是构建一个简单的RPC接口还是复杂的Web服务系统,gSOAP都是一个强大的工具。在实际开发中,了解并掌握...

    Qt下gsoap访问webservice小程序

    Qt是一个流行的C++跨平台应用开发框架,而gSOAP则是一个强大的工具,用于生成客户端和服务器端的代码,使得C/C++应用程序能够与Web服务进行交互。 首先,让我们了解什么是gSOAP。gSOAP是一个开源软件开发工具包,它...

    C++利用gsoap实现webService服务端代码

    总之,通过C++和gSOAP,开发者可以轻松创建符合标准的Web Service服务端。这个过程涉及理解Web Service的基本概念,安装和使用gSOAP工具,编写和实现业务逻辑,以及测试和调试服务。学习和掌握这一技术,将极大地...

    c++访问webservice(gsoap简单使用)

    为了简化这一过程,开发者通常会使用库或工具,其中gSOAP就是一个著名的C/C++开发包,专门用于处理SOAP和Web服务。本文将深入探讨如何使用gSOAP在C++环境中访问Web服务。 首先,gSOAP是一个开源工具包,它自动生成...

Global site tag (gtag.js) - Google Analytics