пытаясь понять gsoap - PullRequest
       9

пытаясь понять gsoap

1 голос
/ 05 апреля 2011

Я создаю свой первый клиент веб-службы, используя gsoap.Я смог запустить пример calc, предоставляемый с gsoap.

Теперь я пытаюсь получить доступ к функции String GetData () из WCF WebserviceЯ сделал шаги 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 голосов
/ 06 апреля 2011

Первый аргумент _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.Но я предполагаю, что вы должны заполнить экземпляр запроса некоторыми значениями.Меня удивляет, что имена классов _ns1__GetData и _ns1__GetDataResponse начинаются с подчеркивания.Я давно использую gSoap, и имена всегда были без начального подчеркивания.

...