Pergunta

Eu tentei várias maneiras para acessar um site através de java. Eu tenho Watij usado, HtmlUnit etc. mas devido a não tão familiarizado com qualquer um destes, eu não sou capaz de login com sucesso.

Alguém pode me dizer em detalhes como login através java

Para ser mais específico, eu quero fazer o login para o ORKUT e quer que o pagesource da página que vem após o login.

Foi útil?

Solução

As suas melhores chances de fazer tais coisas e sobrevivem na web mundo real são com Selenium-RC.

Basicamente, o que você vai fazer é remoto controlar o seu navegador para fazer qualquer coisa que você pode fazer manualmente (exceto o upload de arquivos).

Muitas vezes, eu usei esse padrão:

  1. Entrar com selênio
  2. Faça os bolinhos
  3. Continue com a minha biblioteca HTTP favorito.

Outras dicas

A resposta depende de como o site tentativas para autenticá-lo:

  • Você tem que definir um nome de usuário e senha no cabeçalhos HTTP (autenticação básica)?
  • Ou você tem que preencher e enviar um formulário que contém o nome de usuário e senha?

Para tanto eu recomendaria commons-httpclient, embora a abordagem screen-scraping último é sempre confuso para fazer através de programação.

Para a autenticação básica, dê uma olhada de httpclient Authentication .

Para a autenticação de formulários, você precisa verificar o código HTML da página para entender

  • O URL do formulário é enviado para
  • O que os nomes dos parâmetros para enviar são

Para obter ajuda sobre como submeter um formulário no httpclient, dar uma olhada em a documentação sobre a método POST.

O site httpclient também contém um básica tutorial .

Por que você está tentando de login via Java, por que não usar cURL? Existe algo específico que você está tentando realizar?

Orkut usa Google auth para login. Minha sugestão é usar um depurador HTTP como o Fiddler para assistir ao tráfego durante o login. Provavelmente, existem cookies e redirecionamentos que você precisa para replicar.

Geralmente,

  1. Olhe para o formulário de login, obter os nomes de campo de nome e senha e a ação que o formulário é postado
  2. Criar um pedido POST para o URL de ação e passar o nome e senha corretamente (por exemplo, name = nome de usuário e senha = pwd)
  3. Foi este HTTPS (certifique-se de fazer isso corretamente)
  4. Se a resposta tem um Set-Cookie no cabeçalho, certifique-se de enviar esse cookie em todas as solicitações subseqüentes
  5. Se a resposta tem um redirecionamento, em seguida, fazer um GET para o redirecionamento, o envio de cookies, se apropriado
  6. (manter looping em # 5 até que você não obter um redirecionamento)

A resposta que você começa no final de esta é a fonte da página.

Dê uma olhada nisso:

http: // código .google.com / apis / gdata / javadoc / com / google / gdata / client / http / AuthSubUtil.html http: // code.google.com/p/apex-google-data/source/browse/trunk/google_data_toolkit/src/classes/AuthSubUtil.cls

Looks como o Google Code para autenticar com os seus serviços.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top