标准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中获得,具体应用可能会根据不同的服务端生成不同的代码。
本文出自 “玄武·巴依” 博客,请务必保留此出处http://commandos.blog.51cto.com/154976/130652
标准C/C++程序通过gSOAP调用WebService相关推荐
- C++利用gSoap调用WebService服务
最近要利用C++调用WebService接口,中间工具是gSoap,IDE:VS2010,WebService接口:http://webservice.webxml.com.cn/WebService ...
- gsoap 调用 java_Qt5 + gSOAP 调用 Webservice
开发环境 Win10+Qt5.7+gSOAP2.8.43 使用步骤 1.下载gSOAP 下载地址:https://sourceforge.net/projects/gsoap2/files/ 2.生成 ...
- java中web错误返回码,关于在java程序里调用webservice报500返回码的有关问题
关于在java程序里调用webservice报500返回码的问题 我现在写了个程序,是调用webservice的,执行后我打印返回码是500 错误信息是 java.io.IOException: S ...
- EJBCA 6 通过调用WebService接口增加用户并获取证书
2019独角兽企业重金招聘Python工程师标准>>> 今天终于搞定通过调用WebService 接口的方式在EJBCA 中增加用户. 本项目完整代码请参见http://git.os ...
- gSoap客户端调用WebService完成后注意内存释放顺序
gSoap客户端调用WebService完成后注意内存释放顺序 [cpp] view plaincopy //Soap资源清理 soap_destroy(soap_sp.get()); //清理反序 ...
- java axis2 开发webservice_利用Axis2开发WebService(3)—用Java实现调用WebService的客户端程序 | 学步园...
WebService是为程序服务的,只在浏览器中访问WebService是没有意义的.因此,在本节使用Java实现了一个控制台程序来调用上一节发布的WebService.调用WebService的客户 ...
- java xfire指定参数名_Java编程中使用XFire框架调用WebService程序接口
JAVA调用webservice,当你刚开始接触的时候你会觉得它是一个恶梦,特别是没有一个统一的标准实现,比起.net的那些几步就可以完成的webservice实现,我们看着JAVA的实现真是伤心啊. ...
- C# 创建、部署和调用WebService的简单示例 webservice 可以用于分布式应用程序之间的交互,和不同程序之间的交互。 概念性的东西就不说太多,下面开始创建一个简单的webservi
C# 创建.部署和调用WebService的简单示例 webservice 可以用于分布式应用程序之间的交互,和不同程序之间的交互. 概念性的东西就不说太多,下面开始创建一个简单的webservice ...
- C#调用WebService
1.1.Web Service基本概念 Web Service也叫XML Web Service WebService是一种可以接收从Internet或者Intranet上的其它系统中传递过来的请求, ...
最新文章
- Spring Boot 太重,Vert.x 真香!
- JQuery图表插件之Flot
- asp.net mvc post 后台model_搭建restful api后台
- Faied to run MSBuild commond CmakeError
- 按钮 java_按钮大小(Java)
- 反向传播算法(BP)学习笔记
- SpringBoot | 第十章:Swagger2的集成和使用
- 使用JS读取本地文件
- 芒果DB:mongodb
- TCP 协议(包含三次握手,四次挥手)
- 【T3】将“恢复记账前状态”按钮放置到工作台,一直显示。
- linux mysql 备份 压缩_Linux下mysql定时备份压缩
- 麒麟信安加入中国首个桌面操作系统根社区openKylin, 共擎开源未来!
- PostgreSQL数据库WAL——RM_HEAP_ID日志记录动作
- iterator的用法
- 3D建模学习对于电脑配置要求高不高?用台式机好还是笔记本电脑好?显卡内存等全方面解析,小白福音
- Access key id should not be null or empty.
- 电子科技大学格拉斯哥学院基础实践——共享单车的调查
- Android之View提升:四 使用ExpandableListView 折叠显示
- Java使用@Value获取不到值