sim, o servidor esta retornando um 411 a sua requisição.
R
rafaelvalerini
Entaum isso eu percebi quando executei a classe.
Fiz algumas alterações no método:
publicvoidenviar()throwsException{PropertiessystemSettings=System.getProperties();systemSettings.put("http.proxyHost","172.24.200.100");systemSettings.put("http.proxyPort","8080");System.setProperties(systemSettings);HttpURLConnectionconn=(HttpURLConnection)this.url.openConnection();conn.setDoOutput(true);conn.setDoInput(true);conn.setRequestMethod("POST");conn.setRequestProperty("User-Agent","Mozilla/5.0 (Windows; U; Windows NT 5.0; de-DE; rv:1.7.5) Gecko/20041122 Firefox/1.0");conn.setRequestProperty("Accept","application/ms-download, application/msaccess");conn.setRequestProperty("Accept-Language","pt-br");conn.setRequestProperty("Keep-Alive","300");conn.setRequestProperty("Connection","keep-alive");conn.connect();Filefile=newFile("c:\\Thread\\arquivo.mdb");if(!file.exists()){file.createNewFile();}FileOutputStreamfileStream=newFileOutputStream(file);OutputStreamWriterwr=newOutputStreamWriter(conn.getOutputStream());wr.write(this.parametros);wr.flush();BufferedReaderrd=newBufferedReader(newInputStreamReader(conn.getInputStream()));Stringline;intcont=0;System.out.println("Baixando Arquivo: \n |");while((line=rd.readLine())!=null){if(cont==92100){System.out.println(">");cont=0;}fileStream.write(line.getBytes());cont++;}fileStream.close();wr.close();rd.close();wr=null;rd=null;System.out.println("Arquivo baixado com sucesso.");conn.disconnect();conn=null;}
Agora consigo efetuar o download, mas ao abrir meu arquivo, o MS-ACCESS não reconhece como um arquivo de banco de dados.
Alguem tem alguma idéia de como gravar esse arquivo corretamente para que o access reconheça corretamente?
P
peczenyj
verifique o tamanho e o md5sum: acho que vc esta corrompendo o arquivo por uns bytes a menos ou a mais.
R
rafaelvalerini
Então, vc tem algum pequeno exemplo de como posso fazer isso?
T
thingol
Dá a impressão que você em vez do seu arquivo baixou uma página HTML de erro. Experimente pegar o “arquivo” que você baixou e mude sua extensão para .html, e carregue-o
R
rafaelvalerini
to baixando o arquivo correto, o problema eh que naum está baixando o arquivo completo…
ele naum copia quase 1 MB do arquivo original.
será que meu algoritmo ta errado?? alguem tem alguma sugestão sobre como leio o arquivo completo?
Fiz um passo a passo com estas bibliotecas da apache, mas é bem semelhante ao usar System.getProperties(); para setar o proxy e o HttpURLConnection para efetuar a conexao.
Meu problema acredito que eh um pouco mais embaixo.
Quando faço o download via Internet Explorer, abre normalmente.
Quando eu efetuo o download via aplicação java, sempre quando tento abrir o arquivo, este me pede uma senha.
Verifiquei os bytes que foram baixados via aplicacao java, e são exatamente os mesmos do arquivo .mdb baixado pelo internet explorer.
não sei por que acontece isso. Para testes tentei copiar o arquivo corrreto(baixado do IE) para um novo File, com extensao MDB… funcionou corretamente.
Alguém tem alguma idéia do pq está acontecendo isso com o meu download via aplicaçao Java?
R
rafaelvalerini
a meu método é o seguinte:
publicvoidenviar()throwsException{PropertiessystemSettings=System.getProperties();systemSettings.put("http.proxyHost","192.168.4.254");systemSettings.put("http.proxyPort","8080");System.setProperties(systemSettings);HttpURLConnectionconn=(HttpURLConnection)this.url.openConnection();conn.setDoOutput(true);conn.setDoInput(true);conn.setRequestMethod("GET");conn.setRequestProperty("Keep-Alive","300");conn.setRequestProperty("Connection","keep-alive");conn.connect();Filefile=newFile("c:\\Thread\\arquivo.mdb");if(!file.exists()){file.createNewFile();}FileOutputStreamfileStream=newFileOutputStream(file);OutputStreamWriterwr=newOutputStreamWriter(conn.getOutputStream());wr.write(this.parametros);wr.flush();BufferedReaderbis=newBufferedReader(newInputStreamReader(conn.getInputStream()));BufferedOutputStreambos=newBufferedOutputStream(fileStream);intx;intcont=0;intnumero=0;System.out.println("Iniciando Download: ");System.out.print("0%");while((x=bis.read())!=-1){if(cont==120){bos.write(posicoes.get(cont));}else{bos.write(x);}if(cont==((int)(868065))){numero++;System.out.print(">");cont=0;if(numero==25){System.out.print("25%");}elseif(numero==50){System.out.print("50%");}elseif(numero==75){System.out.print("75%");}}cont++;}System.out.print("100%");bis.close();bos.close();fileStream.close();conn.disconnect();wr.close();bis=null;bos=null;fileStream=null;conn=null;wr=null;System.out.println("\nArquivo baixado com sucesso.");}