使用C/C++程序通过gSOAP调用WebService
一、 环境准备 在本文中,所有程序均在Linux下开发完成,经测试能够正常运行。 在开发过程中,我们需要用到gSOAP,可以从以下网址下载获得:http://www.cs.fsu.edu/~engelen/soap.html 我下载的是gsoap_2.7.12.tar.gz 下载下来解压缩,按正常安装过程进行编译、安装。 # tar zxvf gsozp_2.7.12
在本文中,所有程序均在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.exe -c -o calc.h http://www.genivia.com/calc.wsdl
2、拷贝gSOAP源代码中src文件夹下的stdsoap2.c 与stdsoap2.h 文件到calc.h同一目录
3、解析calc.h文件,生成存根程序
# /usr/local/gSOAP/bin/soapcpp2 –c –C calc.h
命令中参数-c代表生成标准C程序,若没有这个参数,则生成C++程序。
命令中参数-C代表仅生成客户端程序,若没有这个参数,则默认生成客户端和服务端程序。
三、 进行相关开发
1、新建工程
新建一个C文件,进行测试,具体代码如2所示。
2、代码开发
WebService的具体调用方式可以参见生成的soapStub.h文件。
Demo代码(调用WebService的add):
#include "soapH.h"
#include "calc.nsmap"
main()
{
struct soap *soap = soap_new();
double result;
if (soap_call_ns2__add(soap, NULL, NULL, 1.0, 2.0, &result) == SOAP_OK)
printf("The sum of 1.0 and 2.0 is %lg\n", result);
else
soap_print_fault(soap, stderr);
soap_end(soap);
soap_free(soap);
}
正常的话,编译运行后能够在控制台看到WebService返回的处理结果。
四、编译代码:
#gcc -o addtest addtest.c soapC.c soapClient.c stdsoap2.c
更多推荐
所有评论(0)