加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

QtSoap向webservice传递结构体或类参数

发布时间:2020-12-16 22:38:25 所属栏目:安全 来源:网络整理
导读:QtSoapType下面有三种分类:QtSoapArray、QtSoapSimpleType、QtSoapStruct 当WebServive接口中出现类似情况时: s:element name="TestComplexPara"s:complexTypes:sequences:element minOccurs="1" maxOccurs="1" name="para" type="tns:projPara"/s:element

QtSoapType下面有三种分类:QtSoapArray、QtSoapSimpleType、QtSoapStruct

当WebServive接口中出现类似情况时:

<s:element name="TestComplexPara">
<s:complexType>
<s:sequence>
<s:element minOccurs="1" maxOccurs="1" name="para" type="tns:projPara"/>
<s:element minOccurs="0" maxOccurs="1" name="tokenCode" type="s:string"/>
</s:sequence>
</s:complexType>
</s:element>
<s:complexType name="projPara">
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="planSn" type="s:string"/>
<s:element minOccurs="1" maxOccurs="1" name="actualLoads" type="s:double"/>
</s:sequence>
</s:complexType>

这里的参数para,在webservice 服务器端是这样定义的:

  [WebMethod]
        public bool TestComplexPara(projPara para)
        {
            return true;
        }

  public class projPara
    {
        public string planSn;
        public double actualLoads;
    }

这种情况下,QtSoap怎样传递这个参数呢,我是这样处理的:

 QtSoapMessage request;
    QtSoapStruct *paraStruct = new QtSoapStruct(QtSoapQName("para"));
    paraStruct->insert(new QtSoapSimpleType(QtSoapQName("planSn"),"test1"));
    paraStruct->insert(new QtSoapSimpleType(QtSoapQName("actualLoads"),QtSoapType::Double,QVariant(2015.9)));
    request.addMethodArgument(paraStruct);


关于QtSoapSimpleType怎样传递Double类型参数,请参考:QtSoap传递多种类型参数

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读