首页 文章

试图了解gsoap

提问于
浏览
1

我正在使用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();
}

谢谢 .

1 回答

  • 4

    函数 GetData 中的第一个参数 _ns1__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很长一段时间,名字总是没有开始下划线 .

相关问题