gsoap 复杂类型 序列化 问题(元芳, 你怎么看)

发布于 2021-11-18 01:32:59 字数 2090 浏览 866 评论 6

相关wsdl协议如下

<wsdl:operation name="FUNC">
<wsdl:input ws:Action="http://tempuri.org/XXXService/FUNC" message="tns:XXXService_FUNC_Input"/>
<wsdl:output ws:Action="http://tempuri.org/XXXService/FUNCResponse" message="tns:XXXService_FUNC_Output"/>
</wsdl:operation>

<wsdl:message name="XXXService_FUNC_Input">
<wsdl:part name="parameters" element="tns:FUNC"/>
</wsdl:message>

<xs:element name="FUNC">
<xs:complexType>
<xs:sequence/>
</xs:complexType>
</xs:element>

根据协议,对于入参gsoap自动生成下面类

class _ns1__FUNC
{ public:
/// A handle to the soap struct that manages this instance (automatically set)
    struct soap                         *soap                          ;
};

程序部分代码

int main(
         XXXService websoap;
    _ns1__FUNC ns1__FUNC;//入参
    _ns1__FUNCResponse ns1__FUNCResponse;//出参
    int ret = websoap.__ns1__FUNC(&ns1__FUNC,     &ns1__FUNCResponse);
    cout<<"返回值为"<<ret<<endl;
        return 0;
)

协议需要入参应该是一段xml代码

"<?xml version="1.0" encoding="utf-16"?>"
"<Condition>"
"<ID>000</ID>"
"</Condition>";

请问我如何把这段xml写到入参里面,

现在发送给服务端的数据都是空的。

<SOAP-ENV:Body><ns1:FUNC></ns1:FUNC></SOAP-ENV:Body></SOAP-ENV:Envelope>

我试过重新定义

class _ns1__FUNC
{ public:
     std::string xml;
/// A handle to the soap struct that manages this instance (automatically set)
    struct soap                         *soap                          ;
};
ns1__FUNC.xml=
"<?xml version="1.0" encoding="utf-16"?>"
"<Condition>"
"<ID>000</ID>"
"</Condition>";

可是发送过去的数据还是空的,没有序列化上

初次使用gsoap,对wsdl也是不太熟悉,问题可能描述不太清楚

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

反话 2021-11-19 11:16:33

此问题已解决

原因是

<xs:element name="FUNC">
倚栏听风 2021-11-19 11:16:31

还不如抛弃gsoap,直接包装soap对象后post过去,将返回的字符串写个parser解析。

背叛残局 2021-11-19 11:14:02

<xs:element name="FUNC">
<xs:complexType>
<xs:sequence/>
</xs:complexType>
</xs:element>

有谁遇到过  输入参数为空结构体的?

谁能告诉我wsdl这样定义符合规范吗?一个复杂类型FUC里面什么都没有

可是我不能没有你 2021-11-19 11:11:55

真的不想放弃,真想把这个问题解决,真的不想换java

等风来 2021-11-19 11:05:57

真的是对c++无语了,调个webservice这么多问题

凡尘雨 2021-11-18 18:30:58

别沉

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文