Ler código fonte em um site que precisa de user e senha

11 respostas
F

Amigos,

Estou pegando o contigo-fonte (HTML) de uma página.
Mas o problema que tenho, é que prea chegar nessa página precisa estar logado (user e senha).

Como faço para dar um POST antes e utilizar para acessar o site?

Código que estou usando abaixo:

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.net.URL;


/**
 *
 * @author Fagner Souza - [email removido]
 */
public class LerURL {
    private URL url;
    
    /** Creates a new instance of URL */
    public LerURL(String end) {
        try{
            url = new URL(end);
        } 
        catch (MalformedURLException e) {
            System.out.println("ERRO");
        }       
    }
    
    public void getCodigoFonte(){
        try{
            BufferedReader reader = new BufferedReader(new InputStreamReader(url.openStream()));
            String linha = "";
            while ((linha = reader.readLine()) != null)
                System.out.println(linha);
            reader.close();
        }
        catch (Exception e){
            System.out.println("ERRO");
        }
        
    }
    
}

11 Respostas

T

Você precisa nos dizer se esse site tem autenticação “Basic”, “Digest” ou “Windows Integrated Authentication”. Para cada tipo de autenticação a solução é ligeiramente diferente.

F

Olha, não conheço essas diferenças.
Como posso descobrir em qual se encaixa?

Obrigado
Fagner

T

a) Se o site estiver em uma intranet e estiver hospedado no IIS, provavelmente é Windows Integrated Authentication.
b) Se o site funciona em versões muito antigas de browsers na Internet, provavelmente é Basic Authentication, senão é Digest Authentication.

F

O site está na internet feito em ASPX,
com isso, creio que esteja hospedado no IIS.

Como faria a autenticação com Windows Integrated Authentication ?

Sami_Koivu

Será que não é só a esquema mais comum de FORM-POST e Cookie?

F

Teria um exemplo de código?

obrigado

Sami_Koivu

Olá,

Infelizmente não tenho exemplo.

Se você manja inglês, tem esse tópico num outro fórum que trata do mesmo assunto. Também não tem exemplo, mas fica explicado o processo para fazer o que você quer:

[]s,
Sami

F

O que tem que fazer eu até sei.
Mas em Java, como faria para dar um submit, passando o user e senha na autenticação.
E conservar a seção (em um objeto?) para posteriormente acessar outras páginas, com essa sessão aberta.

Qualquer exemplozinho me ajudaria muito.

Valeu a força Sami.

Sami_Koivu

Para fazer o post, tem um exemplo aqui:

O exemplo é para rodar num applet e então tem que modificar algumas coisas, mas talvez ajude.

Paulo_Silveira

pra post, manter cookies e tal use o jakarta commons net. tudo pronto.

Sami_Koivu

De fato, melhor fazer com commons net mesmo como sugerido pelo Paulo e pelo texto do primeiro link que te dei. Eu nunca cheguei a usar isto e assim não sei te dar um exemplo disso, mas deve ser bem mais simples.

Criado 8 de novembro de 2006
Ultima resposta 9 de nov. de 2006
Respostas 11
Participantes 4