我正在为 gsoap 的返回参数绑定而苦苦挣扎。我有一个返回的函数,char**
它的组成如下:{char*, ..., char*, NULL}
. 我希望生成的 Web 服务能够在一个参数中传输和处理多个字符串。然而,Gsoap 只生成:
<element name="retVal" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/>
我希望它返回一个字符串数组,而不是单个字符串。
如果我理解你的问题
您可以开发自己的函数,该函数调用 gSoap 函数以从 gSoap 函数获取返回的字符串,然后将 gSoap 字符串拆分为子字符串并将它们放入一个数组中,然后返回您的字符串数组
我在文档中找到了答案。事实证明,我必须创建一个结构来用于返回值并适当地命名变量。就我而言:
struct ns_cl_get_indexes_retVal {
int __sizeIndex;
char** index;
};
以及 WS-base 标头中的函数:
int ns__cl_get_indexes ( int32_t db_id, struct ns_cl_get_indexes_retVal& retVal );
这导致了正确的 xml 生成,如 wsdl 所示:
<element name="index" type="xsd:string" minOccurs="0" maxOccurs="unbounded" nillable="true"/>