У меня есть приложение, которое выбирает файл по выделенному пути на моем устройстве и отправляет его на сервер.Использование ksop2 для отправки больших файлов в веб-службу
Я использую ksoap2 lib для вызова .NET webservice для отправки моего файла на сервер. Я использую кодировку Base 64.
Я могу отправить файл с максимальным размером 1 МБ без шифрования и 850 Кбит с шифрованием. Алгоритм шифрования, который я использую, - это 3DES.
Если я пытаюсь послать файлы большего размера, чем выше размер я получаю следующее сообщение об ошибке: Вызванный: java.lang.OutOfMemoryError на org.ksoap2.transport.HttpTransportSE.call (HttpTransportSE.java:121)
My Test среда: Android-эмулятор с уровнем API 8, Android 2.2 и SDCard 512 МБ
Является ли это тем, что я что-то упускаю? Может ли использование BLOB помочь мне в этом случае
Можно ли отправить более крупный файл? я слышал о том, чтобы отправлять куски данных, но понятия не имею. любая ссылка или образец кода действительно помогут.
для получения данных из файла, используя следующий код: здесь URL = где хранится файл
public byte[] getFileData(String vURL){ instream = new FileInputStream(vURL); size = (int) vURL.length();
fileContent = new byte[size]; instream.read(fileContent); }
закодировать данные, используя следующий код:
byte[] res = Utilities.getFileData(file);
String mdata = android.util.Base64.encodeToString(res, android.util.Base64.DEFAULT);
призывающей сторону сервер веб-службу и отправки данные на сервер
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();
Не удалось отправить filedata более 1 МБ.
Заранее спасибо
Пожалуйста, внесите ваш код. Любой ответ на этот вопрос - это просто спекуляция, если мы не можем увидеть какой-то код. –
Укажите, насколько больше файлов, которые вы пытаетесь отправить здесь, так как если этот файл больше 4 мб, проблема в том, что ваша часть андроида не является частью вашего веб-сервиса, и вам нужно настроить файл web.Config установив следующие атрибуты . –