2011-01-06 14 views
1

Ich sende mehrere PDF-Dateien über SOAP, die von einem Android-Client empfangen werden. Wenn die SOAP-Antwort empfangen wird, wird OutOfMemoryException ausgelöst.OutOfMemoryException in KSOAP

Ich möchte wissen, ob es eine Beschränkung von KSOAP oder Android ist. Bitte führe mich, wie ich es überwinden kann.

Danke.

Antwort

1

Ich würde vorschlagen, das nicht zu tun. Einfach die rohe URL in die PDF-Datei in die Soap-Nachricht einfügen und die PDF-Datei unabhängig von Soap herunterladen. Das funktioniert gut für mich mit PDF-Dateien sowie Bildern ..

So in etwas mehr Detail:

Einen Ihrer Ergebnisse aus der SOAP-Anforderung soll eine vollständige öffentliche URL der PDF-Datei irgendwo auf dem enthalten Internet.

Dann verwenden Sie DownloadManager oder was auch immer Sie in Bezug auf Android-Entwicklung wollen, um die Datei heruntergeladen zu bekommen, indem Sie die URL verwenden, die Sie von der Soap-Antwort erhalten haben. Aber lassen Sie die PDF-Datei nicht innerhalb der Soap-Anfrage verpacken. Auf diese Weise können Sie auch eine Fortschrittsanzeige während des Downloads anzeigen und so weiter. Herunterladen von Dateien auf Android ist überall dokumentiert.

+0

Können Sie bitte in einem kleinen Detail erklären. – Mudassir

+0

Danke Herr Moser. Wirklich hilfreich. – Mudassir

+0

Wenn das der Fall ist, sollten Sie die Antwort akzeptieren. –

0

Ich jetzt, dass dies alte Frage ist, aber vielleicht helfe ich anderen Entwicklern. Der effizienteste Weg, um einen großen binären Inhalt vom/zum Web-Service zu senden, ist der MTOM-Transfer (SOAP mit Anhängen). Das Problem ist, dass ksoap2-Bibliothek diese Funktion nicht unterstützt, aber Sie können http://easywsdl.com Generator versuchen. Was ich weiß ist, dass es MTOM-Übertragung unterstützt und ermöglicht Ihnen, sehr große Binärdateien zu senden/abrufen. Natürlich muss die MTOM-Übertragung auch auf der Web-Service-Seite aktiviert werden.