0

我想在 C++ gsoap Web 服务中序列化一个 Qt Image (QImage)。我感到困惑的 Web 服务部分看起来像下面的代码。我想通过 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>
4

1 回答 1

0

由于拒绝字符和 SOAP 格式,您无法通过 SOAP 应答发送图像。您需要在发送之前转换为 Base64。我知道此过程将传输字节的大小增加了 33%,但我不知道在肥皂答案中执行此操作的另一种方法。

发送此 jpeg 图像的另一种方法是,如果您仅发送此图像中的 URL,并使您的 gSoap 服务器引导此 GET 请求。它有点复杂,因此如果您不想发送 Base64,我看不到另一种方式。

于 2013-06-21T12:54:44.897 回答