用于C ++的QImage(QT)的WSDL

时间:2013-05-27 21:53:49

标签: qt wsdl gsoap

我想在C ++ gsoap Web服务中序列化Qt Image(QImage)。我感到困惑的网络服务部分看起来像下面的代码。我想通过Web服务传递QImage和其他数据。我不想使用xsd:base64Binary,而是我想在这里使用QImage,但我不知道如何。我已经搜索了最近三天,但我找不到关于这个主题的帮助。请帮帮我。

<xsd:complexType name="PersonType">
    <xsd:sequence>
        <xsd:element name="id" type="xsd:string"/>
        <xsd:element name="FirstName" type="xsd:string"/>
        <xsd:element name="LastName" type="xsd:string"/>
        <xsd:element name="Gender" type="xsd:string"/>
        <xsd:element name="BirthDate" type="xsd:string"/>
        <xsd:element name="BirthPlace" type="xsd:string"/>
        <xsd:element name="SocialNumber" type="xsd:string"/>
        <xsd:element name="PersonImage" type="tns:ImageType"/>
    </xsd:sequence>
</xsd:complexType>

<xsd:complexType name="ImageType">
    <xsd:sequence>
        **// What should i specify here in type? How QImage will work here?**
        <xsd:element name="return" type="xsd:base64Binary" 
        xmlns:xmime="http://www.w3.org/2005/05/xmlmime" 
        xmime:expectedContentTypes="image/jpeg"/>
    </xsd:sequence>
</xsd:complexType>

1 个答案:

答案 0 :(得分:0)

由于拒绝字符和SOAP格式,您无法通过SOAP回答发送图像。您需要在发送之前转换为Base64。我知道这个程序会增加33%的传输字节大小,但我不知道另一种方法可以用肥皂来回答。

发送此jpeg图像的另一种方法是,如果您只发送此图像中的URL并使用此GET请求使您的gSoap服务器处于领先地位。它有点复杂,因此如果你不想发送Base64,我不会看到另一种方式。