第一次写技术类文章,纯粹为了记录学习的过程。感觉挺好的。
我是做java的,看我上javaeye而不是上cppblog发表文章就知道了。但是没想到我写得第一篇竟然是用c++做的程序。
废话少说。开篇。
要用gsoap当然要先有gsoap那个程序。下个吧。我就不弄链接了。
然后通过gsoap里面的wsdl2h程序把web service的wsdl文件解析成头文件。具体命令,我这里只用到
wsdl2h -o qqOnlineWebService.h qqOnlineWebService.wsdl
然后再用soapcpp2把头文件解析成一堆源码放到项目中。具体命令是
soapcpp2 -C -Iimport qqOnlineWebService.h
然后把soapclientlib.cpp这个文件从项目中删去,然后再把stdsoap2.cpp和stdsoap2.h加入到项目中。就开始动工了。
一般来说,服务用的类文件放在一个叫**soapproxy.h的头文件中。然后结构体文件就放在你一开始通过wsdl2h生成的头文件中。
就举显示qq在线状态的web service的例子吧。
我新建一个win Console项目,然后加入文件,然后再在main函数中输入
#include "stdafx.h"
#include "soapqqOnlineWebServiceSoapProxy.h"
#include "qqOnlineWebServiceSoap.nsmap"
#include <iostream>
#include <string>
using namespace std;
int main(int argc, char* argv[])
{
qqOnlineWebServiceSoap qqOnlineC;
_ns1__qqCheckOnline ask;
string qqc = "120022192";
cin>>qqc;
ask.qqCode=&qqc;
_ns1__qqCheckOnlineResponse ret;
qqOnlineC.__ns1__qqCheckOnline(&ask,&ret);
string get = *ret.qqCheckOnlineResult;
char getstr[100];
size_t i=0;
for(i=0;i<ret.qqCheckOnlineResult->length();i++)
{
getstr[i] = get[i];
}
getstr[i]='\0';
printf("%s\n",getstr);
return 0;
}
然后把所有的cpp文件都改为不预编译头文件。就是右键某个cpp,选setting...,选C/C++,选precompile header,选not using ....。设置完之后还需要做一个设置,就是你的项目要在project-setting-link那里在Object/library modules 添加Ws2_32.lib这个类库。因为gsoap是通过socket传输的。然后大致上就可以 编译成功了。看看输出什么。
这里特别说明下,std:string类是很多web service使用的类型。要注意他的用法。还有就是指针。我原想直接通过指针输出的。不过没成功。呵呵。学艺不精。
分享到:
相关推荐
gsoap-win32-2.7 ,
gsoap-win32-2.7
gsoap插件gsoap-2.8
官方开源的gSOAP不支持SSL/TLS,生成onvif框架时会报【Cannot connect to ... 本资源包含soapcpp2.exe、wsdl2h.exe两个文件,编译环境为Win10+VS2017+openssl1.1.1b,分享于此
gsoap开发指南
gsoap-tool,自动生成XML数据
介绍关于gsoap的使用方法及相关概念,内容很详细
很多人需要实现gSOAP-UDP异步通讯,本人把原有gSOAP的生成类进行了派生,使其能够进行异步通讯。并且实现UDP打洞。示例代码意图是做DVR的客户端和服务端开发,使用这可以在此基础上进行修改,用于其他用途。
gSoap-2.8.63实现RTSP推流,利用live555做mediaServer,包含完整代码,直接make就行
gsoap-2.8.zip
gsoap开发详细说明 示例 附带源码
gSoap开发工具使用指南,onvif开发者首选帮助文档。
gSOAP 开发手册,做好了目录,以及有些英文翻译
gSOAP 开发 Web Service 程序
官网下载的gsoap-2.8,方便自己下载使用
该资源为gsoap工具,用于C++调用WS接口生成相应文件即可读取接口
gsoap,直接下载,调用函数即可,实现通讯
vs2005控制台程序给予gsoap访问myeclipse8.x给予jax-ws的web service服务 在我的博客中,有详细的步骤描述
C/C++开发webservice用到的gsoap开发包