使用gSoap时如何解释C ++中收到的数据?

时间:2014-04-18 17:37:43

标签: c++ service gsoap

我使用 gSoap 在C ++中实现了一项服务。我是从多个现有WSDL文件创建的。

现在我需要为服务的每个虚拟方法提供一个定义。

让我们看一下soapMyServiceService.h文件中生成的一个方法声明:

///
/// Service operations (you should define these):
/// Note: compile with -DWITH_PURE_VIRTUAL for pure virtual methods
///

/// Web service operation 'Initialize' (returns error code or SOAP_OK)

virtual int Initialize(_ns5__Initialize *ns5__Initialize, _ns5__InitializeResponse *ns5__InitializeResponse);

实际上,我期待得到:

virtial string Initialize(int var_a , int var_b , string var_c);

但是现在,我需要实现它生成的内容并返回SOAP代码:

int MyService::Initialize(_ns5__Initialize *ns5__Initialize, _ns5__InitializeResponse *ns5__InitializeResponse)
{
    // HOW can I get here the received values for that I can able to implement my logic?
    return SOAP_OK;
}

如何获取接收到的值(客户端为var_a,var_b和var_c发送的值),然后为他设置返回的字符串,同时返回错误代码...

您通常如何实施服务的逻辑?

谢谢。

1 个答案:

答案 0 :(得分:0)

在您的服务方法实现中MyService :: Initialize(_ns5__Initialize * ns5__Initialize,_ns5__InitializeResponse * ns5__InitializeResponse) 最后一个参数是响应参数,其余的都是输入参数,这里你只有一个输入参数类型为_ns5__Initialize,它可能是一个结构,如果你访问它的成员,你将得到请求的所有输入参数。