| |||||||
Das Thema "base64 datei mit webservice erhalten" befindet sich unter Android App Entwicklung auf Android-Hilfe.de.
|
| | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| Neuer Benutzer Registriert seit: 18.11.2011
Beiträge: 20
Abgegebene Danke: 4
Erhielt 0 Danke für 0 Beiträge
| ich steh mal wieder etwas auf dem Schlauch und zwar folgendes Problem: mit KSOAP2 erfolgt eine anfrage an einen Webservice, bei erfolg, wird mir eine base64 'datei' gesendet. Diese müsste ich nun speichern aber irgendwie komme ich an der stelle nicht weiter: Code: SoapObject response = (SoapObject) envelope.getResponse(); iHarder.net Home Page gesichert. Ist diese notwendig ? Hat android eine eigene Klasse für diese Zwecke? Denke das es gut wäre dass als Stream zu sichern ?!? Freue mich über Eure Anregungen und Eure Meinungen zu dem Thema sowie, .. vielleicht ein paar codesnipes (?) ![]() Danke LG Mandra
__________________ www.plaintalk.de Die Dummheit ist rund. Niemand weiss, wo sie anfängt und wo sie aufhört. |
| | |
| | #2 (permalink) |
| Android Experte Modell: Samsung Galaxy S2 mit CM9 | Asus Transformer Prime Registriert seit: 27.08.2010
Beiträge: 782
Abgegebene Danke: 124
Erhielt 162 Danke für 128 Beiträge
|
Also wenn ich mich richtig erinnere, hatte man bei Android kaum Möglichkeiten zum ent- und verschlüsseln. Beim Googlen bin ich dann damals auf eine Klasse gestoßen, die von vielen empfohlen wurde. Ich glaube der Link gehört dazu: How to base64 encode decode Android | Android Code Monkey Allerdings habe ich jetzt auch nochmal geschaut und unter android.util die gesehen: Base64 | Android Developers Ich habe aber - wie gesagt - nur mit der oberen gearbeitet. Noch ein Tipp am Rande: Wenn du schon base64 hast, müsstest du es de- und nicht encoden. Sonst ist dein Ergebnis doppelt encoded.
__________________ Auch ich freue mich, wenn man bei mir den DANKE Button drückt ![]() PowerPoint OpenOffice Remote - Kostenlose App um PowerPoint, OpenOffice und LibreOffice fernzusteuern. Shutdown Remote - Kostenlose App um seinen PC aus der Ferne herunterzufahren. |
| | |
| Folgender Benutzer bedankt sich bei v Ralle v für diesen Beitrag: | MandraKobold (22.12.2011) |
| | #3 (permalink) |
| Neuer Benutzer Registriert seit: 18.11.2011
Beiträge: 20
Abgegebene Danke: 4
Erhielt 0 Danke für 0 Beiträge
|
Danke für die Antwort. Ja richtig habe mich mit dem en- und decoden etwas vertan. Besteht eine Begrenzung bezüglich der grösse die über Ksoap übermittelt werden kann oder die base64 decoden kann?? Meine Datei die übermittelt wird kann bis zu 20MB haben, daher die Frage. Edit: Es sieht so aus als wenn es eine Begrenzung geben würde, allerdings weiss ich noch nicht ob es tatsächlich eine Begrenzung der oben gennaten entspricht oder ober der ram nicht ausreicht, die Daten zwischen zu speichern. Vielleicht mal ein stück code: Code: HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);
try {
// built a connection
androidHttpTransport.call(SOAP_ACTION, envelope);
// Get the SoapResult
SoapPrimitive resultsRequestSOAP = (SoapPrimitive) envelope
.getResponse();
// Do something with the download data
String result = resultsRequestSOAP.toString();
if (result != "") {
byte[] b= Base64.decode(result, Base64.DEFAULT);
ByteArrayInputStream test = new ByteArrayInputStream(b, 0,
b.length);
String rootpath = gd.getSDRootPath() + File.separator;
OutputStream fOut = new FileOutputStream(new File(
rootpath, gd.getProjectName() + ".zip"));
int byteCount = 0;
byte buffer[] = new byte[1024];
int bytesRead = -1;
while ((bytesRead = test.read(buffer)) != -1) {
byteCount += bytesRead;
fOut.write(buffer, 0, bytesRead);
}
fOut.flush();
fOut.close();
}
} catch (Exception e) {
// ToDo
} aber kleinere Dateien ohne probleme mit der oben gennaten codeteil verarbeitet werden können, liegt die vermutung nahe dass es wohl mit der grösse der Datei zusammenhängt. Hat jemand bereits Erfahrung mit Ähnlichem und könnte mir einen Tip geben? Sollte ich vielleicht einen anderen Ansatz als KSOAP verfolgen oder die Datei gestückelt werden (was ungern passieren sollte)?? DANKE
__________________ www.plaintalk.de Die Dummheit ist rund. Niemand weiss, wo sie anfängt und wo sie aufhört. Geändert von MandraKobold (22.12.2011 um 11:00 Uhr) |
| | |
| | #4 (permalink) |
| Android Experte Modell: Samsung Galaxy S2 mit CM9 | Asus Transformer Prime Registriert seit: 27.08.2010
Beiträge: 782
Abgegebene Danke: 124
Erhielt 162 Danke für 128 Beiträge
|
Ich wüsste nicht, warum es bei der Base64 Klasse eine Limitierung der Dateigröße geben sollte. Ich vermute sehr stark, dass es ein RAM Problem ist. Sieh dazu einfach mal in Logcat nach, das steht dort exakt drin. Weiterhin kann man das auch ganz leicht mit der normalen JVM überprüfen. Schreibe doch mal eine Testklasse und überprüfe die Base64 Klasse, ich könnte wetten, dass es dort funktioniert. Zu KSOAP kann ich nicht viel sagen.
__________________ Auch ich freue mich, wenn man bei mir den DANKE Button drückt ![]() PowerPoint OpenOffice Remote - Kostenlose App um PowerPoint, OpenOffice und LibreOffice fernzusteuern. Shutdown Remote - Kostenlose App um seinen PC aus der Ferne herunterzufahren. |
| | |
| | #5 (permalink) |
| Neuer Benutzer Registriert seit: 18.11.2011
Beiträge: 20
Abgegebene Danke: 4
Erhielt 0 Danke für 0 Beiträge
|
Hallo, ich muss das Thema leider noch einmal aufgreifen. Bis zu einer bestimmten grösse von Daten, die vom WebService kommen funktioniert alles ohne Probleme. Allerdings treten ab einer grösse von mehr als 10 MB die Probleme auf. Im LogCat steht das der Heap ständig vergrössert wird, nur dass der nicht ausreicht so das die Methode ein Dauerläufer wird ohne Ergebnis (habe es eine halbe Stunde laufen lassen). Das Problem tritt an folgender stelle auf : Code:
HttpTransportSE androidHttpTransport = new HttpTransportSE(URL); //--------------------- ab hier
androidHttpTransport.call(SOAP_ACTION, envelope);
//--------------------- Der RAM vom Handy ist 1GB, kann das bei der grösse wirklich ein Problem sein?? Hat jemand ähnlich Erfahrungen mit diesen Methoden/Klassen und/oder kann mir eine alternative nennen? Würde mich sehr freuen. Danke LG Mandra
__________________ www.plaintalk.de Die Dummheit ist rund. Niemand weiss, wo sie anfängt und wo sie aufhört. |
| | |
| | #6 (permalink) |
| Android Experte Modell: Samsung Galaxy S2 mit CM9 | Asus Transformer Prime Registriert seit: 27.08.2010
Beiträge: 782
Abgegebene Danke: 124
Erhielt 162 Danke für 128 Beiträge
|
Damit habe ich noch nicht gearbeitet. Zum RAM kann ich aber sagen, dass 1GB nicht viel aussagt. Es kommt auf die Heap Größe an, die eine App nutzen darf. 10mb sollten aber im Rahmen sein. Allerdings können auch große Bilder nervende Probleme bereiten. Ist immer ein ziemliches Gefrickel (besonders wenn man hardwareschwache Geräte unterstützen muss). Ich hoffe, jemand kann dir noch besser helfen.
__________________ Auch ich freue mich, wenn man bei mir den DANKE Button drückt ![]() PowerPoint OpenOffice Remote - Kostenlose App um PowerPoint, OpenOffice und LibreOffice fernzusteuern. Shutdown Remote - Kostenlose App um seinen PC aus der Ferne herunterzufahren. |
| | |
| | #7 (permalink) |
| Neuer Benutzer Registriert seit: 18.11.2011
Beiträge: 20
Abgegebene Danke: 4
Erhielt 0 Danke für 0 Beiträge
|
Danke. Es scheint wirklich die Heap grösse zu sein, die wohl bei manchen Geräten +/- 16 MB beträgt, das hängt aber auch mit der OS Version zusammen. Meinem Galaxy S2 scheint das nicht genug zu sein. Daher werde ich mich jetzt daran versuchen den InputStream direkt zu speichern und dann zu parsen. Gerade wie du schon sagst auch Hardware schwache Geräte unterstützt werden sollten. Werde mich wieder melden wenn ich ne Lösung habe oder hier jemand noch einen Tip hat. LG
__________________ www.plaintalk.de Die Dummheit ist rund. Niemand weiss, wo sie anfängt und wo sie aufhört. |
| | |
![]() |
|
| Themen-Optionen | |
| Ansicht | |
| |
| ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| ES Datei Explorer -> Datei öffnen mit... | steffen_desire_hd | Tools | 9 | 28.12.2011 17:17 |
| [Phonegap] Bild übertragen via Base64 | imoro | Android App Entwicklung | 0 | 10.08.2011 15:53 |
| Intents mit Base64 Bytearray | bloddY | Android App Entwicklung | 1 | 01.08.2011 13:14 |
| Webservice abfragen mit ksoap2, addproperty funktioniert nicht | ramses66 | Android App Entwicklung | 0 | 14.11.2010 13:54 |
| [Ajax|jQuery|ASP.NET|Webservice] Problem mit Parametern | ChriDDel | Smalltalk und Offtopic | 0 | 30.09.2010 14:52 |