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

How to interpret the received data in C++ when using gSoap?

本文关键字:解释 数据 C++ gSoap 使用      更新时间:2023-10-16

我已经使用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发送的值),然后为他设置字符串的返回值,同时返回错误代码。。。

您通常如何实现服务的逻辑

谢谢。

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