Java Tips: Download de arquivo usando Apache HttpComponents

Posted on junho 3, 2012. Filed under: Java, Tips | Tags:, , |

Introdução

Já vimos em um artigo anterior como realizar o download de arquivos binários através de HTTP usando a biblioteca Commons HttpClient do Apache. O Commons HttpClient foi descontinuado já à algum tempo e substituído pelo projeto Apache HttpComponents que promete melhor perfomance e mais flexibilidade. Portanto neste artigo vamos demonstrar como realizar o download de arquivos através de http usando a biblioteca HttpComponents.

Segue abaixo o código fonte:

import java.io.IOException;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;

// definição da classe HttpDownload 
public class HttpDownload {
	private final HttpClient httpclient;
	
	public static void main(String[] args) {
		// instanciando e usando a classe HttpDownload 
		HttpDownload httpDownload = new HttpDownload(new DefaultHttpClient());
		
		// fazendo o download do logotipo da google e salvando em diretório local 
		httpDownload.downloadByGet("http://www.google.com.br/images/srpr/logo3w.png", "/tmp/logo-google.png");
	}
	
	// construtor 
	public HttpDownload(HttpClient httpclient) {
		this.httpclient = httpclient;
	}
	
	// método que realiza download de arquivo via método GET 
	public void downloadByGet(String URL, String path) {
		HttpGet httpget = new HttpGet(URL);
		try {
			HttpResponse response = httpclient.execute(httpget);
			HttpEntity entity = response.getEntity();
								
			if (entity != null) {
				/* salvar arquivo no disco */
				java.io.FileOutputStream fos = new java.io.FileOutputStream(path);
			    entity.writeTo(fos);
			    fos.close();
			}
		} catch (ClientProtocolException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}
Ler Post Completo | Make a Comment ( 5 so far )

Liked it here?
Why not try sites on the blogroll...

%d blogueiros gostam disto: