gsoap开发--QQ在线状态查询

本文介绍如何利用gSOAP工具将WebService的WSDL文件转换为C++可用的头文件及源代码,并通过实例演示如何在WinConsole项目中调用显示QQ在线状态的服务。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第一次写技术类文章,纯粹为了记录学习的过程。感觉挺好的。

我是做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使用的类型。要注意他的用法。还有就是指针。我原想直接通过指针输出的。不过没成功。呵呵。学艺不精。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值