Ich habe eine Anwendung, die die Datei aus einem dedizierten Pfad auf meinem Gerät auswählt und es an den Server sendet.Mit ksop2, wie große Dateien an Web-Service senden
Ich benutze ksoap2 lib, um den .NET Webservice aufzurufen, um meine Datei an den Server zu senden. Ich verwende Base 64-Codierung.
Ich kann Datei mit einer maximalen Größe von 1 MB ohne Verschlüsselung und 850 KB mit Verschlüsselung senden. Der Verschlüsselungsalgorithmus, den ich verwende, ist 3DES.
Wenn ich versuche, Dateien, die größer als die oben Größe zu schicken ich folgende Fehlermeldung erhalten: Verursacht durch: java.lang.OutOfMemoryError bei org.ksoap2.transport.HttpTransportSE.call (HttpTransportSE.java:121)
My Test Umgebung: Android Emulator mit API Level 8, Android 2.2 und SDCard Speicher 512 MB
Ist es, dass ich etwas verpasse? Kann BLOB in diesem Szenario helfen
Gibt es eine Möglichkeit, größere Datei zu senden? Ich habe gehört, Datenblöcke zu senden, habe aber keine Ahnung davon. Jeder Link oder Beispielcode wird wirklich helfen. hier url = wo Datei gespeichert ist
public byte[] getFileData(String vURL){ instream = new FileInputStream(vURL); size = (int) vURL.length();
fileContent = new byte[size]; instream.read(fileContent); }
Encode die Daten mit folgendem Code:
byte[] res = Utilities.getFileData(file);
String mdata = android.util.Base64.encodeToString(res, android.util.Base64.DEFAULT);
Aufruf serverseitige Web-Service und das Senden
auf Dateidaten mit folgendem Code zu erhalten Daten zum Server
SoapObject request = new SoapObject(nameSpace, methodName);
if (fileData != null && !fileData.equals("")) {
request.addProperty("vBLOBData", fileData);
}
SoapSerializationEnvelope envelope = getEnvelope(request);
HttpTransportSE ht = new HttpTransportSE(url); // ,3000
ht.debug = true;
ht.call(soapAction, envelope);
response = (envelope.getResponse()).toString();
Nicht in der Lage, Daten von mehr als 1 MB zu senden.
Vielen Dank im Voraus
Bitte geben Sie Ihren Code ein. Jede Antwort auf diese Frage ist nur Spekulation, es sei denn, wir können tatsächlich Code sehen. –
Bitte geben Sie an, um wie viel größer die Dateien, die Sie hier senden möchten, da, wenn diese Datei größer als 4 MB ist, das Problem nicht in Ihrem Android-Teil alles in Ihrem Web-Service-Teil ist und Sie Ihre Web.Config-Datei konfigurieren müssen durch Einstellen der folgenden Attribute: . –