Como saber se a URL inicia um download

4 respostas
F

Queria fazer um metodo que receba uma url e diga se ao acessa-la iniciara um download.

exemplo:

www.site.com.br/download.php?=/arquivos/arquivoParaDownload.rar

Se quando eu acessar a url o download ira comecar.

ja tentei fazer com o HttpURLConnection mas nao deu certo.

URL url = new URL(urlString); 
HttpURLConnection connection = (HttpURLConnection) url.openConnection(); 
connection.setRequestProperty("Request-Method", "GET");
connection.setDoInput(true);  
connection.setDoOutput(false);
connection.connect();
 if(connection.getResponseCode() == 200 ) return true;

retorna true mesmo quando o download nao comeca.

Alguem sabe como fazer ?

4 Respostas

G

Pelo header. Cada resposta possui um cabeçalho que você deve analisar e procurar pelo valor de Content-type.

peczenyj

Veja qual é o Content-Type.

Paginas normais são algo como text/html

F

Pesquisei por Content-type mas nao consegui resolver meu poblema, poderia me dar um exemplo ?

PS: O programa é desktop, recebe uma URL e verifica se ao acessar-la ira inicar um download.

valeu

G

Eu não gosto de passar códigos, isso deixa o pessoal muito preguiçoso, mas... vamos lá:

URL url = null;
HttpURLConnection conn = null;

url = new URL("http://www.google.com");
conn = (HttpURLConnection) url.openConnection();

System.out.println("1: " + conn.getHeaderField("Content-type"));
conn.disconnect();

url = new URL("http://vraptor.caelum.com.br/documentation/vraptor3.pdf");
conn = (HttpURLConnection) url.openConnection();

System.out.println("2: " + conn.getHeaderField("Content-type"));
conn.disconnect();

Isso vai imprimir no console:

1: text/html; charset=ISO-8859-1
2: application/pdf
Criado 4 de dezembro de 2009
Ultima resposta 4 de dez. de 2009
Respostas 4
Participantes 3