Pergunta

Estou enviando vários arquivos PDF através do SOAP, que serão recebidos por um cliente Android. Mas, ao receber a resposta do sabão, ele está lançando o OUTOfMemoryException.

Quero saber se é uma limitação do KSOAP ou Android. Por favor, me guie como superá -lo.

Obrigado.

Foi útil?

Solução

Eu sugeriria não fazer isso. Basta colocar o URL bruto no arquivo PDF na mensagem SOAP e baixar o PDF separadamente independentemente do SOAP. Isso funciona muito bem para mim com arquivos PDF, bem como imagens.

Então, com um pouco mais de detalhes:

Um dos seus resultados da solicitação SOAP deve conter um URL público completo ao arquivo PDF em algum lugar da Internet.

Em seguida, use o DownloadManager ou o que quiser em termos de desenvolvimento do Android para que o arquivo seja baixado usando o URL que você obteve na resposta do SOAP. Mas não tem o PDF embrulhado na solicitação de sabão. Dessa forma, você também pode mostrar uma barra de progresso durante o download e assim por diante. Download de arquivos no Android está documentado em todos os lugares ..

Outras dicas

Agora, isso é uma pergunta antiga, mas talvez eu ajude outros desenvolvedores. A maneira mais eficiente de enviar um grande conteúdo binário de/para o serviço da web é a transferência do MTOM (SOAP com anexos). O problema é que a biblioteca KSOAP2 não suporta esse recurso, mas você pode tentar http://easywsdl.com gerador. O que eu sei é que ele suporta a transferência do MTOM e permite enviar/recuperar arquivos binários muito grandes. É claro que a transferência do MTOM deve ser ativada também no lado do serviço da web.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top