OutOfMemoryException в kSOAP

Я отправляю несколько файлов PDF через SOAP, которые будут получены клиентом Android. Но при получении ответа SOAP выдается исключение OutOfMemoryException.

Я хочу знать, является ли это ограничением kSOAP или Android. Подскажите пожалуйста как побороть.

Спасибо.


person Greenhorn    schedule 06.01.2011    source источник


Ответы (2)


Я бы посоветовал этого не делать. Просто поместите необработанный URL-адрес pdf-файла в сообщение мыла и загрузите pdf-файл отдельно, независимо от мыла. Это отлично работает для меня с файлами PDF, а также с изображениями.

Итак, немного подробнее:

Один из ваших результатов запроса SOAP должен содержать полный общедоступный URL-адрес PDF-файла где-то в Интернете.

Затем используйте DownloadManager или что-то еще, что вы хотите с точки зрения разработки Android, чтобы загрузить файл, используя URL-адрес, который вы получили из ответа мыла. Но не заворачивайте PDF-файл в запрос на мыло. Таким образом, вы также можете показывать индикатор выполнения во время загрузки и так далее. Скачивание файлов на Android документировано везде.

person Manfred Moser    schedule 03.02.2011
comment
Не могли бы вы объяснить немного подробнее. - person Mudassir; 08.02.2011
comment
Спасибо, мистер Мозер. Действительно полезно. - person Mudassir; 09.02.2011
comment
Я могу только поддержать ваш ответ, и я уже сделал это. Я не автор этого вопроса. Извините, мистер Мозер, я не могу принять ответ. - person Mudassir; 11.02.2011

Теперь я знаю, что это старый вопрос, но, возможно, я помогу другим разработчикам. Наиболее эффективным способом отправки большого двоичного содержимого из/в веб-службу является передача MTOM (SOAP с вложениями). Проблема в том, что библиотека ksoap2 не поддерживает эту функцию, но вы можете попробовать генератор http://easywsdl.com. Я знаю, что он поддерживает передачу MTOM и позволяет отправлять/извлекать очень большие двоичные файлы. Конечно, передача MTOM также должна быть включена на стороне веб-сервиса.

person robocik    schedule 14.01.2015