Я отправляю несколько файлов PDF через SOAP, которые будут получены клиентом Android. Но при получении ответа SOAP он выбрасывает OutOfMemoryException.
Я хочу знать, является ли это ограничение kSOAP или Android. Пожалуйста, расскажите мне, как его преодолеть.
Спасибо.
Я бы предложил не делать этого. Просто поместите исходный url в файл pdf в сообщение для мыла и загрузите pdf отдельно независимо от мыла. Это отлично работает для меня с файлами PDF, а также с изображениями.
Итак, немного подробнее:
Один из результатов запроса SOAP должен содержать полный публичный URL-адрес файла PDF где-то в Интернете.
Затем используйте DownloadManager или все, что вы хотите с точки зрения разработки Android, чтобы загрузить файл, используя URL-адрес, который вы получили от ответа на мыло. Но у нас нет PDF файла, заключенного в запрос мыла. Таким образом вы также можете показать индикатор выполнения во время загрузки и так далее. Загрузка файлов на Android документирована повсюду.
Теперь, когда это старый вопрос, возможно, я помогу другим разработчикам. Наиболее эффективным способом отправки большого двоичного содержимого из/в веб-службу является передача MTOM (SOAP с вложениями). Проблема в том, что библиотека ksoap2 не поддерживает эту функцию, но вы можете попробовать http://easywsdl.com генератор. Я знаю, что он поддерживает передачу MTOM и позволяет отправлять/извлекать очень большие двоичные файлы. Конечно, передача MTOM должна быть включена также на стороне веб-службы.