Tenho uma classe para download de paginas da net, porem agora preciso fazer o download e artigos de sites protegidos com cookies, o que me leva a ter que implementar na minha classe algum meio de setar o cookie de uma seção ativa.
Alguem sabe como fazer isso ? setar o cookie ?
Ou algum outro meio de conseguir os arquivos simunlando estar logado ao site, pois as paginas q quero so são permitidas visualização quando eu me logo.
ps. Vale lembrar que eu tenho a login e senha do site, so que o volume de informação a ser obtida e muito grande para ser feito manualmente.
Cookie cookie = new Cookie(“cookie”, “4125”); response.addCookie(cookie);
agora… pra conseguir fazer o download de não sei o que protegido por não sei quem… dai não sei não ;p
aszarael
Bom, vou mostrar minha classe de download para que possa entender
/* * download.java * * Created on 20 de Outubro de 2006, 09:45 * * To change this template, choose Tools | Template Manager * and open the template in the editor. */packagebaixar;importbaixar.Leitura;// Adicionando classe de leitura de dados do tecladoimportjava.io.*;importjava.io.File;importjava.io.FileWriter;importjava.util.*;importjava.net.*;// adicionando a classe urlconnection para poder baixar arquivos/** * * @author Isael Faria Junior */publicclassdownload{Leiturateclado=newLeitura();// instanciando classe publicvoidgetpagina(Stringendereco)throwsIOException{try{//CookieHandler.setDefault(new ListCookieHandler());CookieHandler.getDefault();// Socket localsocket = new Socket("Localhost",8180);// DataOutputStream pegapagina = new DataOutputStream (localsocket.getOutputStream()); //Socket s = null; //Declaro o socket cliente//PrintStream ps = null;//Declaro a Stream de saida de dados//s = new Socket("localhost",8118); //Cria o socket com o recurso desejado na porta especificadaFileWriterwriter=newFileWriter(newFile("temp1.htm"));// criar o arquivo - colocar, true para appendPrintWritergrava=newPrintWriter(writer,true);// cria objeto para inserir texto, true faz append por linhaURLurl=newURL(endereco);// instancia a classe url//pegapagina.writeBytes("Get "+endereco);//BufferedReader reader = new BufferedReader(new InputStreamReader(localsocket.getInputStream()));// cria um leitor de buffer e recebe o input strem e o urlstrem que e o resultado da consulta.BufferedReaderreader=newBufferedReader(newInputStreamReader(url.openStream()));// cria um leitor de buffer e recebe o input strem e o urlstrem que e o resultado da consulta.Stringlinha=newString("");// cria string linhaswhile((linha=reader.readLine())!=null){// enquando o buffer não estiver vaziograva.println(linha);// adiciona ao arquivo grava.flush();}grava.close();// fechar gravarwriter.close();//fechar writer//ps.println();//s.close(); }catch(UnknownHostExceptionioe){System.out.println("Erro ao acessar a url desejada.");}catch(SocketExceptionioe){System.out.println("Erro de protocolo TCP");}catch(UnknownServiceExceptionioe){System.out.println("Erro ao ler a pagina");}catch(EOFExceptionioe){System.out.println("Ouve uma interrupção ao gravar o arquivo");}catch(FileNotFoundExceptionioe){System.out.println("A pagina requisitada ou caminho invalido");}catch(CharConversionExceptionioe){System.out.println("Erro ao converter a url");}catch(UnsupportedEncodingExceptionioe){System.out.println("The Character Encoding is not supported.");}catch(IOExceptione){System.out.println("Algum problema ocorreu ao criar ou enviar dados pelo socket.");}}}
O que quero fazer e quando executar essa classe ele set o cookie da sessão autenticada que usei e baixe o arquivo como se eu fizesse do navegador ?