如何使用 qt+gsoap 调用 webservice

 我来答
司马刀剑
高粉答主

2017-10-19 · 每个回答都超有意思的
知道顶级答主
回答量:4.6万
采纳率:93%
帮助的人:7226万
展开全部

gsoap调用webservice的方法步骤:

  1. 生成存客户端存根程序和框架

wsdl2h -o xxx.h xxx.wsdl(-t D:/gsoap-2.7/gsoap/typemap.dat)

soapcpp2 -L -x -i xxx.h(-I D:/gsoap-2.7/gsoap/import)

2.或直接自己编写xxx.h,并生成xxx.wsdl

//gsoap ns service name: xxx

//gsoap ns service style: rpc

//gsoap ns service encoding: literal

//gsoap ns service location: ht//localhost:8080

//gsoap ns schema namespace: ht/localhost:8080/xxx.wsdl

int ns__add(int a, int b, int* result);  

3.客户端1) 把如下生成的文件添加到项目:stdsoap2.h,stdsoap2.cpp,soapH.h,soapC.cpp,soapStub.h,soapxxxProxy.h,soapxxxProxy.cpp,xxxSoap.nsmapwsock32.lib

2) 代理方式调用

#include "soapTestWebServiceProxy.h"

#include "Test www.hbbz08.com WebService.nsmap"

int main(int argc, char* argv[])

{

int result = 0;

TestWebServiceProxy proxy;

proxy.add(12, 23, &result);

}  //w

4.服务端  

1) 把如下生成的文件添加到项目:

stdsoap2.h,stdsoap2.cpp,

soapH.h,soapC.cpp,soapStub.h,

soapxxxService.h,soapxxxService.cpp,xxxSoap.nsmap

wsock32.lib

2) 实现接口函数

int TestWebServiceService::add(int a, int b, int *result)

{

*result = a+b;

return SOAP_OK;

}  /

3) 开启服务

#include "soapTestWebServiceService.h"

#include "TestWebService.nsmap"

int main(int argc, char* argv[])

{

TestWebServiceService service;

service.run(8080);

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式