Recuperar pagina html usando java - pela url  XML
Índice dos Fóruns » Java Avançado
Autor Mensagem
edward.juniorr
JavaBaby

Membro desde: 15/03/2010 16:36:39
Mensagens: 78
Offline

Ola,

Então consegui criar uma classe em java que eu informo a url ... e ela me trás todo o código html da url que informe......

mas gostaria de executar uma acão no html que ela me retorna.......
alguem sabe fazer isso??? ou algum exemplo ????

px: passo a url de uma tela de login
quero através do código html que eu tenho, informar o usuario e a senha e executar !!!

tendo assim o código html da outra tela que acabei de acessar através da senha

tem como fazer isso???

vlwwwww
edward.juniorr
JavaBaby

Membro desde: 15/03/2010 16:36:39
Mensagens: 78
Offline

???????????
edward.juniorr
JavaBaby

Membro desde: 15/03/2010 16:36:39
Mensagens: 78
Offline

ninguem imagina????
McLuck
Thread.start()

Membro desde: 16/05/2009 16:56:39
Mensagens: 36
Offline

Boa tarde Edward.

Voce vai precisar fazer o seguinte: Criar uma classe que irá ler todo seu html e pegar todos os forms do html.
Uma vez que voce tenha os forms do html, voce devera ter uma classe que irá extrair, do form, o nome dos inputs e a action do form.

Bom, com a classe que voce tem ai que usa para "ler" paginas, voce deve abrir o endereco passado na action do form.
o parametro enviado sera: nomeInput1=valueInput1&nomeInput2=valueInput2

exemplo basico abaixo:



Ah!!! o conteudo da pagina que ele for redirecionado neste suposto "login" estara tudo dentro do StringBuffer strbResponse.

Bom, já te adianto que voce precisa de nocoes de HTML e/ou requisicoes web para fazer isto... senao tudo isto vai ser bem mais dificil.

Agora uma coisa que pensei aqui: Isto não é nenhuma tentativa de invasão ou span, certo? Espero que não.


Se precisar de ajuda, posta ai.



Att,

Lucas Israel
edward.juniorr
JavaBaby

Membro desde: 15/03/2010 16:36:39
Mensagens: 78
Offline

mano valeu pela ajuda......

a classe que eu tenho aqui é bem parecida com a que vc colocou ...
oq eu realmente não sabia como fazer era os esquemas dos parametros......

mas deixa eu ver se eu entendi mesmo.....
dentro do "while"
eu vou ter o código html da minha página que vem depois que eu logar correto???
caso eu precise executar outro botao dentro desta pagina ... eu teria que fazer a mesma coisa?? passar os parametros e boa? ai teria o html da outra pagina??

só mais uma coisa..... se este sistema(site) que vou acessar não for desenvolvido com struts(action) teria jeito de acessar se fosse jsf e classes java pura mesmo?

vlwwwww

obs: rsrsr não é pra invasão não .... é pq vou ter que fazer isso aqui no trampo ... com um site que é do nosso cliente..... eu apenas estou adiantando pra ver como fazer isso!!!
eu vou ter usuario e a senha de tudo!!! não é nada fora da lei não rsrs



McLuck
Thread.start()

Membro desde: 16/05/2009 16:56:39
Mensagens: 36
Offline

Cara, funciona assim: Independente do que você usar (framework MVC), a página gerada será sempre em HTML (bom, com alguns exceções, claro, que geram conteudo atraves de JS por causa de AJAX, como é o caso do GWT).

O que voce precisa fazer é ler o html, achar o que deseja. Caso seja um form, faça como expliquei, caso contrário, pegue o link(do botao que voce mencionou) e coloque na URL (neste caso, não precisa passar nenhum parametro, basta ler a pagina).

Quanto aos parametros, voce pode enviar um formulario inteiro por ele. Veja:



Para voce enviar este form, voce montaria uma string com os nomes e os valores.



Voce ainda pode enviar tudo por GET (na propria URL). Veja como:



Espero ter ajudado.



Att,

Lucas Israel
edward.juniorr
JavaBaby

Membro desde: 15/03/2010 16:36:39
Mensagens: 78
Offline

vlw lucas.... entendi!!

vou tentar aqui!!

abraço!
edward.juniorr
JavaBaby

Membro desde: 15/03/2010 16:36:39
Mensagens: 78
Offline

Então Lucas...... eu estou tentando fazer o seguinte......
gerei um WAR do meu sistema local .... coloquei em outro servidor de aplicação ....startei e blz... está rodando no jetty!!

localmente pelo meu eclipse(tomcat) estou rodando a classe para recuperar o html da pagina do meu sistema que está rodando no jetty....

a pagina que estou acessando é a pagina de login e senha do meu sistema!!!! (estou querendo recuperar o html da outra página que vem logo depois do acesso)

está pagina de login foi feito com jsf(rich) .... quando acesso o form(http://localhost:8080/BIG/tools/formLogin.html) ela me retorna um html esquisito veja um pedaço:



é está action(action="/BIG/tools/formLogin.html;jsessionid=2gfr3ppf4vavb") do <form > que ele me retornou que tenho que pegar concatenando os parametros como me explicou acima?
ou tenho que fazer outra coisa ??? perceba que o botão de "Entrar" da tela está aqui em baixo! (id="formLogin:sendButton")...

a minha classe para testar é essa:



na hora que executo está linha


não era pra ele conseguir preencher os valor dos inputs? e acessar a nova pagina?
pq não está retornando o html da outra pagina.... e sim o html da mesma, sem os value preenchidos...

vlwwwwwwwww


McLuck
Thread.start()

Membro desde: 16/05/2009 16:56:39
Mensagens: 36
Offline

Kra, vamos uma coisa por vez.
- Sim, a url está correta.
- Tente colocar os nomes dos inputs como login e password (login=wt&password=123)

Agora, velho. Não posso te ajudar muito além daqui. Não entendo muito de faces (pois é, no mundo em que vivemos eu sou meio analfabeto de faces). É que sempre trabalhei com webwork. Estou arrumando tempo na agenda pra estudar Faces, mas cada hora aparece uma coisa nova pra estudar e/ou fazer (ta, pura sem vergonhice mesmo =p ).

Aposto que outro usuário do fórum irá se manifestar e ajudar, enquanto isto faça da forma que sugeri e posta o resultado.



Att,

Lucas Israel
edward.juniorr
JavaBaby

Membro desde: 15/03/2010 16:36:39
Mensagens: 78
Offline

Fmz então Lucas..... tentei fazer o que vc falou .... mas tbm não me retornou o html da outra página.....
parece que ele não está conseguindo setar os valores......

bom vou tentar aqui... vlwww ...

se alguem souber .... please!!!
edward.juniorr
JavaBaby

Membro desde: 15/03/2010 16:36:39
Mensagens: 78
Offline

então ninguém mais do forum ja precisou acessar um site pelo java e recuperar o html das paginas acessadas????


Icavalera
Thread.start()
[Avatar]

Membro desde: 14/04/2006 10:51:47
Mensagens: 48
Offline

Cara,

Tem uma biblioteca "httpUnit" que tem justamente isso que vocês está querendo.
Com ela você consegue acessar a pagina recuperar o seu form preencher esse form dar submit do botão e ainda obter o html de resposta.

Nesse PDF tem um exemplo completo disso
http://www.argonavis.com.br/cursos/java/j820/j820_08_httpunit.pdf


Qualquer coisa pergunta ae que eu tento te ajudar
edward.juniorr
JavaBaby

Membro desde: 15/03/2010 16:36:39
Mensagens: 78
Offline

E ai cavalera..... é exatamente isso que eu precisava..... só que como não conheço muito bem..... tenho algumas dúvidas..... vê se vc sabe me ajudar.....

quando tento acessar um site normal px: http://www.google.com.br
eu não consigo conexão.....

eu acho q tenho que configurar o proxy .... eu configurei assim e não deu certo


vc sabe o nome da propriedade de "senha" e "usuario" ? pq acho que tenho que informar isso tbm!!! quando uso o firefox na minha máquina informo o usuario e senha tbm...

o outro ponto que ta foda de dar certo.... é conseguir acessar o outro form a tela depois do login ..... veja meu codigo



neste código estou setando o usuario e login.....
ele está conseguindo recuperar o form blz.....
consegue setar o "formLogin:login" tbm..... pq depois no html que retorna ... o value="wt" desse input... vem setado corretamente....
o problema é que o campo senha... é criptografado no meu bean

tentei passar o valor ja criptografado :

e ele me retorna o mesmo html da pagina de login

quando passo sem criptografar:


ele da um erro muito grande cara...... vou tentar resumir ... colocando o começo e o fim do erro....

começo



fim


não tenho certeza se isso está certo tbm....


coloquei o codigo html que o java me retorna la em cima... se quiser dar uma olhada......


se alguem tiver uma luz ai......

vlwwwwwwwwwwwwwwwww

Icavalera
Thread.start()
[Avatar]

Membro desde: 14/04/2006 10:51:47
Mensagens: 48
Offline

Você tem que colocar o proxy, host, login e senha!



Tem varias maneira de fazer isso




Ex uma pagina com um form de login senha



esse codigo preenche o campo "login" do seu form com a palavra fulano e preenche o campo senha com F932*xw.
WebResponse response = wc.getResponse(request); - > isso aqui vai fazer o submit desse formulario
String html = response.getText(); -> vai obter o html de resposta


Em qual site você esta tentando fazer o login?
Se for algo da google por exemplo okut, antes de tentar fazer o login é necessário pegar o token de autenticação no Google, é uma chave que será usada para acessar o orkut - a "prova da autenticação sucedida". Para pegá-la faço um request a /accounts/ClientLogin passando usuário, senha e o nome do serviço que quero fazer login, nesse caso, o orkut. no url abaixo tem um texto falando mais sobre isso

http://imasters.uol.com.br/artigo/12296

This message was edited 1 time. Last update was at 09/07/2010 14:13:35

edward.juniorr
JavaBaby

Membro desde: 15/03/2010 16:36:39
Mensagens: 78
Offline

Então cara estou tentando acessar um sistema que está rodando localmente em outro servidor de aplicação..... em outra porta.....

queria acessar esse sistema!!!

este código não funcionou!! me retorna o html do proprio formLogin.html... e eu queria da pagina que vem logo depois!!


eu até consegui acessar mas usando este código :


ele me trouxe o html da outra pagina......
mas tem um problema!!!
esta pagina que vem depois da tela de login, se chama listCampaign.xhtml

ela tem um include do jsf, de outro xhtml .... que se chama template.xhtml
quando eu deixo este include desta pagina ele da o erro que postei em lá em cima!!! quando tiro esse include ele me tras o html ...
mas como praticamente a tela inteira está no template.xhtml .... não tenho as informações que preciso!!!
nesta pagina template.xhtml que vem por trás de td.... tem alguma funções em javascript e jquery....
acredito que seja esse o problema...... sobre o proxy eu entendi.,..... vlwwwww


tem alguma luz... de como eu conseguir o html inteiro mesmo usando esse include ???
no meu listCampagin.xhtml o include ta assim!!! no jsf

 
Índice dos Fóruns » Java Avançado
Ir para:   
Powered by JForum 2.1.8 © JForum Team