BLOG

Acompanhe a Mobits pelo RSS

FILTROS

Quem algum dia precisou fazer envio de arquivos mais elaborado via http no Android, já deve ter percebido que não existe um HttpEntity especial para isso. Foi ao passar por este problema que precisei buscar alternativas e é este o tema deste post.

O problema era fazer envio de arquivo como multipart/form-data-encoded e o Android não traz essa funcionalidade nativamente. Para fazer esse tipo de envio, descobri o MultipartEntity, que faz parte do HttpClient da Apache.

Antes de utilizá-lo, lembre-se de incluir os jars do HttpClient no seu projeto. Veja como o MultipartEntity funciona no exemplo abaixo:

 MultipartEntity entity = new MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE, boundary, Charset.defaultCharset());    
 byte[] data = //seu arquivo em array de bytes
 ByteArrayBody b = new ByteArrayBody(data, "image/png", "nome_arquivo.png");
 entity.addPart("file", b);
 in.close();

Neste exemplo, vale lembrar que é preciso passar o boundary e seu arquivo em formato de array de bytes. Você pode passar seu arquivo de outras maneiras, além do ByteArrayBody, existem outros tipos como: AbstractContentBody, FileBody, InputStreamBody e StringBody. Veja a documentação aqui para saber mais detalhes.

Espero que a dica também seja útil a vocês!

COMPARTILHE

DEIXE UM COMENTÁRIO

If you can read this, you don't use a typical webbrowser that plays nice with CSS.
Please do not fill in anything here!