Ho un'applicazione che preleva il file da un percorso dedicato sul mio dispositivo e lo invia al server.Utilizzo di ksop2 come inviare file di grandi dimensioni al servizio Web
Sto usando ksoap2 lib per chiamare il servizio web .NET per inviare il mio file al server. sto usando la codifica Base 64.
Posso inviare file con dimensione massima di 1 MB senza crittografia e 850 KB con crittografia. L'algoritmo di Encirption che sto utilizzando è 3DES.
se cerco di inviare file più grandi di dimensioni sopra ottengo l'errore seguente: causato da: java.lang.OutOfMemoryError a org.ksoap2.transport.HttpTransportSE.call (HttpTransportSE.java:121)
mio test ambiente: emulatore Android con API Livello 8, memoria Android 2.2 e SDCard 512 MB
È che mi sto perdendo qualcosa? Può utilizzare BLOB aiutarmi in questo scenario
C'è un modo per inviare file di grandi dimensioni? ho sentito parlare dell'invio di blocchi di dati ma non ne ho idea. qualsiasi link o codice di esempio sarà di grande aiuto.
per ottenere i dati dei file utilizzando seguente codice: qui url = dove file è memorizzato
public byte[] getFileData(String vURL){ instream = new FileInputStream(vURL); size = (int) vURL.length();
fileContent = new byte[size]; instream.read(fileContent); }
codificare i dati utilizzando codice seguente:
byte[] res = Utilities.getFileData(file);
String mdata = android.util.Base64.encodeToString(res, android.util.Base64.DEFAULT);
chiamando il servizio web lato server e l'invio dati al 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();
Non è possibile inviare file con più di 1 MB.
Grazie in anticipo
Inserisci il tuo codice. Qualsiasi risposta a questa domanda è solo speculazione, a meno che non possiamo effettivamente vedere un codice. –
Specificare quanto più grande è il file che si sta tentando di inviare qui, poiché se questi file sono più grandi di 4 mb il problema non si trova nella parte di Android, è tutto nella parte del servizio Web e occorre configurare il proprio file web.Config impostando i seguenti attributi . –