当前位置:天才代写 > tutorial > C语言/C++ 教程 > 尺度C/C++措施通过gSOAP挪用WebService

尺度C/C++措施通过gSOAP挪用WebService

2017-11-04 08:00 星期六 所属: C语言/C++ 教程 浏览:424

一、情况筹备

在本文中,所有措施均在Linux下开拓完成,经测试可以或许正常运行。

在开拓进程中,我们需要用到gSOAP,可以从以下网址下载得到: http://www.cs.fsu.edu/~engelen/soap.html

我下载的是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 http://192.168.0.151:8080/services/TestWS?wsdl

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中得到,详细应用大概会按照差异的处事端 生成差异的代码。

本文出自 "玄武·巴依" 博客,请务必保存此出处 http://commandos.blog.51cto.com/154976/130652

 

    关键字:

天才代写-代写联系方式