具有自定义属性类型的 Ksoap2 请求

Ksoap2 request with custom attribute type

提问人:Jakub Sroka 提问时间:3/7/2023 更新时间:3/7/2023 访问量:34

问:

我花了一整天的时间在互联网上搜索,以了解如何将自定义类型添加到属性中,我希望这里有人可以帮助我。

我只需要将属性内容的类型设置为 Base64BinaryData

我想发送什么

    ...
    <attachment i:type=":attachment">
        <fileName>photo.jpg</fileName>
        <dataPresent i:type="d:boolean">true</dataPresent>
        <content i:type="n0:Base64BinaryData">
            <data>PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPGNvbjpzb2FwdWktc2V0dGlu
Z3MgeG1sbnM6Y29uPSJodHRwOi8vZXZpd2FyZS5jb20vc29hcHVpL2NvbmZpZyI+PGNvbjpzZXR0
...
ZS1zb2FwdWktcHJvamVjdC54bWwiIHZhbHVlPSJLc2F2aVdGTVNlcnZpY2UiIHhtbG5zPSJodHRw
Oi8vZXZpd2FyZS5jb20vc29hcHVpL2NvbmZpZyIvPjwvY29uOnNldHRpbmc+PC9jb246c29hcHVp
LXNldHRpbmdzPg==</data>
        </content>
    </attachment>
    ...

我的代码生成以下 XML

<attachment i:type=":attachment">
                <fileName i:type="d:string">photo.jpg</fileName>
                <dataPresent i:type="d:boolean">true</dataPresent>
                <content i:type=":content">
                    <data i:type="d:string">PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPGNvbjpzb2FwdWktc2V0dGlu
Z3MgeG1sbnM6Y29uPSJodHRwOi8vZXZpd2FyZS5jb20vc29hcHVpL2NvbmZpZyI+PGNvbjpzZXR0
...
ZS1zb2FwdWktcHJvamVjdC54bWwiIHZhbHVlPSJLc2F2aVdGTVNlcnZpY2UiIHhtbG5zPSJodHRw
Oi8vZXZpd2FyZS5jb20vc29hcHVpL2NvbmZpZyIvPjwvY29uOnNldHRpbmc+PC9jb246c29hcHVp
LXNldHRpbmdzPg==</data>
                </content>
            </attachment>

我的代码

SoapObject xAttachment = new SoapObject(namespace, name);
        parentSoap.addSoapObject(xAttachment);

        writeWsString(xAttachment, "fileName", attachment.getFileName());
        writeValue(xAttachment, "dataPresent", attachment.getDataPresent());

        SoapObject contentForData = new SoapObject("", "content");
        xAttachment.addSoapObject(contentForData);

        writeWsBase64ByteArray(contentForData, "data", attachment.getDataBase64());
 SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);

        envelope.setOutputSoapObject(request); // prepare request
        MarshalDouble md = new MarshalDouble();
        md.register(envelope);
        allowAllSSL();
        chooseProtocol();
        try {
            httpTransport.call(getSoapActionPrefix() + method, envelope);

            T result = responseBuilder.build(envelope);

            return result;
        } catch (Exception e) {
}

如果您有任何想法,我将不胜感激

Android XML 解析 android-ksoap2

评论


答: 暂无答案