Download automatico

7 respostas
StriderMGBR

Pessoal, é o seguinte. Eu tenho um aplicativo javawebstart, no qual faz uso de um banco de dados access!! Eu quero q qd o usuario executar o meu webstart, o meu programa em java, fasse o download do arquivo mdb do servidor, e descompacteo numa pasta!! Como q eu faria esse download?? Alguem ai tem ideia!! Preciso muito disso!! Agradeço a todos!!

VLW!!

7 Respostas

_fs

FTP ou HTTP?

StriderMGBR

http

_fs

Use HttpClient.

Baixe estes aqui:
http://jakarta.apache.org/commons/httpclient/downloads.html
http://jakarta.apache.org/site/downloads/downloads_commons-codec.cgi
http://jakarta.apache.org/site/downloads/downloads_commons-logging.cgi

Código modificado a partir do tutorial na página no HttpClient:

public static void main( String[] args )
	{
		String url = "http://www.minhapagina.com.br/meuarquivo.exe";
		HttpClient client = new HttpClient();

		// Create a method instance.
		GetMethod method = new GetMethod( url );

		// Provide custom retry handler is necessary
		method.getParams().setParameter( HttpMethodParams.RETRY_HANDLER,
				new DefaultHttpMethodRetryHandler( 3, false ) );

		try
		{
			// Execute the method.
			int statusCode = client.executeMethod( method );

			if( statusCode != HttpStatus.SC_OK )
			{
				System.err.println( "Method failed: " + method.getStatusLine() );
			}

			// Read the response body.
			byte[] responseBody = method.getResponseBody();
			File file = new File( "." );
			FileOutputStream os = new FileOutputStream( file );
			os.write( responseBody );
			os.close();
		}
		catch( HttpException e )
		{
			System.err.println( "Fatal protocol violation: " + e.getMessage() );
			e.printStackTrace();
		}
		catch( IOException e )
		{
			System.err.println( "Fatal transport error: " + e.getMessage() );
			e.printStackTrace();
		}
		finally
		{
			// Release the connection.
			method.releaseConnection();
		}
	}
StriderMGBR

Opa fera, blz?? eu usei essa sua função ae e tals, baixei la e tals!! ai deu esse errinho ai na hora de executar, tu sabe pq?? E outra, pra onde o arquivo vai ser baixado q eu nao consegui entender!! vlw!!

07/04/2006 14:32:15 org.apache.commons.httpclient.HttpMethodBase getResponseBody
WARNING: Going to buffer response body of large or unknown size. Using getResponseBodyAsStream instead is recommended.
Fatal transport error: . (Acesso negado)
java.io.FileNotFoundException: . (Acesso negado)

StriderMGBR

Ae, consegui baixar o arquivo!! Vlw!! Mas aki, tipo, quero fazer uma verificacao pra saber c o arquivo ja foi baixado, e se o arquivo q ja foi baixado é igual ao do meu servidor!! C tem noção de como posso fazer isso?? Pra ver c ele ja foi baixado eu sei como q é, to so com duvida pra ver c as versões sao iguais, m da um forca ae!!

VLW!!

_fs

Nunca precisei fazer comparação de arquivos, mas penso que deve primeiro comparar o tamanho de ambos e, caso iguais, comparar byte a byte.

B

StriderMGBR, como você conseguiu fazer ele fazer o download? Segui o exemplo de não funfo, será que dá pra você me dizer como conseguiu fazer???

vlw

Criado 6 de abril de 2006
Ultima resposta 5 de nov. de 2008
Respostas 7
Participantes 3