我想在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>
答案 0 :(得分:0)
由于拒绝字符和SOAP格式,您无法通过SOAP回答发送图像。您需要在发送之前转换为Base64。我知道这个程序会增加33%的传输字节大小,但我不知道另一种方法可以用肥皂来回答。
发送此jpeg图像的另一种方法是,如果您只发送此图像中的URL并使用此GET请求使您的gSoap服务器处于领先地位。它有点复杂,因此如果你不想发送Base64,我不会看到另一种方式。