27 Jan, 2012 15:59

Como enviar arquivos via HTTP no Android

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!

Ao navegar neste site, você consente o uso de cookies nossos e de terceiros, que coletam informações anônimas e são essenciais para melhorar sua experiência em nosso site.