我正在使用gsoap创建我的第一个Web服务客户端。我能够运行gsoap提供的calc示例。
现在我正在尝试从WCF Webservice访问String GetData()函数。我做了wsdl2h和soapcpp2步骤并生成了.h文件。在xxxxproxy.h中,我看到GetData的原型如下
/// Web service operation 'GetData' (returns error code or SOAP_OK)
virtual int GetData(_ns1__GetData *ns1__GetData, _ns1__GetDataResponse *ns1__GetDataResponse);
Can someone tell me what should I write in my main.cpp to access GetData. I have following code in main.cpp
#include <QtCore/QCoreApplication>
#include "soapWSHttpBinding_USCOREIAquaLinkProxy.h"
#include "WSHttpBinding_USCOREIAquaLink.nsmap"
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
WSHttpBinding_USCOREIAquaLinkProxy webService;
std::cout <<"Sent request"<<std::endl;
std::string result;
if(webService.GetData(?????? )==SOAP_OK)
{
std::cout << "Returned "<< ????? <<std::endl;
}
else
{
webService.soap_stream_fault(std::cerr);
}
return a.exec();
}
感谢。
答案 0 :(得分:4)
函数_ns1__GetData
中的第一个参数GetData
是请求参数,第二个参数是响应参数。你应该尝试以下:
_ns1__GetData request;
request.???? = ???? // I don't know the WCF Webservice
_ns1__GetDataResponse response;
if(webService.GetData(&request, &response) == SOAP_OK)
{
std::cout << "Returned " << response.????;
}
我不知道WCF Web服务。但我想你必须用一些值填充请求实例。令我惊讶的是,班级名称_ns1__GetData
和_ns1__GetDataResponse
以下划线开头。我正在使用gSoap很长一段时间,名字总是没有开始下划线。