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();
		}
	}
}

Make a Comment

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google

Você está comentando utilizando sua conta Google. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s

5 Respostas to “Java Tips: Download de arquivo usando Apache HttpComponents”

RSS Feed for Pasqua Tecnologia Comments RSS Feed

Excelente 😉

Nao consigo ter sucesso na execução do código: aparece o seguinte erro: Exception in thread “main” java.lang.VerifyError: Cannot inherit from final class

Boa tarde Gracyane,

Me parece que o problema não esta no código em sim, mas no seu ambiente de testes. Talvez esteja faltando configurar o CLASSPATH corretamente. Lembre-se que para testar o código, você precisa do Apache HttpComponents, que deve ser baixado à partir do link http://hc.apache.org/ !

Mais dúvidas sobre CLASSPATH, veja se o artigo abaixo te ajuda:
http://www.guj.com.br/articles/108

Boa Sorte!

Boa tarde Pasquati,

obrigada por sua atenção. A causa do código não estar sendo executado é pelo fato das versões dos jars que eu estava utilizando. Estou utilizando agora httpclient -4.0-beta1.jar. / httpcore-4.2.1.jar / commons-logging-api-1.0.4.jar e alguns outros jars que o compilador acusou que estava faltando. Mas foi somente nas versões dos jars que acabei de citar que minha aplicação funcionou.

Grata pela atenção,

Gracyane Oliveira.

Bacana Gracyane! Que bom que funcionou!
Abraços!


Where's The Comment Form?

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

%d blogueiros gostam disto: