Olá galera, estou com um projeto aqui na empresa e não consigo resolver.
A ideia é a seguinte, usando jsoup, entrar no ERP da empresa, fazer uma busca e capturar os dados da busca e salvar em um arquivo.
Bom, minha dúvida é apenas com o login do ERP, o resto eu pesquiso e me viro, é que não entendo muito bem de POST, GET e etc… e como tratar quando devo fazer login de um jeito ou outro…e como devo fazer o login em paginas.
segue o código fonte da pagina e o fonte do código do java.
HTML
<html>
<head>
<link type='text/xml' rel='alternate' href='/Default.vsdisco'/>
<title>Neo - Cobrança Inteligente</title>
</head>
<style type="text/css">
<!--
BODY {
FONT-FAMILY: Verdana, helvetica; FONT-SIZE: 10pt;
margin: 10 0 0 0;
}
TD {
FONT-FAMILY: Verdana, helvetica; FONT-SIZE: 10pt
}
a {
color: #000000
}
.texto1 { font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 8pt; }
.texto2 { font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10pt; }
-->
</style>
<script language="javascript" src=funcoes.js></script>
<script language=javascript>
<!--
//Para quem utiliza discador, lista e permite alterar o Ramal
function VerificaRamal(logon) {
if (logon != '') {
var resposta = '';
var oHTTPRequest = createXMLHTTP();
oHTTPRequest.open("post", "../funcoesAjax.asp?TipoOperacao=VerificaRamal&Logon=" + logon, false);
oHTTPRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
oHTTPRequest.onreadystatechange = function() {
if (oHTTPRequest.readyState == 4) {
resposta = oHTTPRequest.responseText;
}
}
oHTTPRequest.send();
if (resposta != '') {
var arrResult = resposta.split("|");
if (arrResult[0] == 'Altitude' || arrResult[0] == 'Altitude_2') {
document.getElementById("dvRamal").style.display = "block";
if (frmlogin.ramal.value == '' && arrResult[1] == logon) { frmlogin.ramal.value = arrResult[2] };
return true;
} else {
document.getElementById("dvRamal").style.display = "none";
frmlogin.ramal.value = '';
return true;
}
}
}
}
function Valida() {
if (frmlogin.usuario.value == "") {
alert("É preciso informar o usuário!");
frmlogin.usuario.focus();
return false;
}else if (frmlogin.senha.value == "") {
alert("É preciso informar a senha!");
frmlogin.senha.focus();
return false;
}else if (document.getElementById("dvRamal").style.display == "block") {
if (frmlogin.ramal.value == ""){
alert("É preciso informar o ramal!");
frmlogin.ramal.focus();
return false;
}else{
return true;
}
}else{
return true;
}
}
//-->
</script>
<body bgColor="#FFFFFF" onload="ValidaNavegador()">
<br>
<center><img src="images/neo.gif"></center><br>
<br>
<table width=100% ID="Table1">
<tr>
<td class=texto1 align=center>Licenciado para:</td>
</tr>
</table>
<br>
<div align="center"><img src='images/logo_cliente_logon_45.gif'></div>
<!--
<table width="300" cellpadding="0" cellspacing="1" align="center">
<tr>
<td class=texto1><font color="#ff5520"><p style="text-align:center">
Digite seu usuário, sua senha e clique em "Entrar" para ter acesso ao sistema.<br><br>
</p></font>
</td>
</tr>
</table>
-->
<br>
<form action="login2.aspx" method="post" name="frmlogin" onsubmit="javascript:return Valida();">
<table width="375" cellpadding="0" cellspacing="1" align="center">
<tbody>
<tr>
<td bgColor="#cccccc" colSpan="2">
<img border="0" height="1" src="imagens/pixel.gif" width="1"></td>
</tr>
<tr height=25>
<td width="35%">
<div align="right"><b>usuário:</b></div>
</td>
<td width="65%">
<div align="left"> <input size="20" maxlength="30" name="usuario" class=texto1 ></div>
</td>
</tr>
<tr>
<td bgColor="#cccccc" colSpan="3">
<img border="0" height="1" src="imagens/pixel.gif" width="1"></td>
</tr>
<tr height=25>
<td>
<div align="right"><b>senha:</b></div>
</td>
<td> <input size="20" maxlength="100" name="senha" type="password" class=texto1></td>
</tr>
<tr>
<td bgColor="#cccccc" colSpan="3">
<img border="0" height="1" src="imagens/pixel.gif" width="1"></td>
</tr>
</tbody>
</table>
<!-- Para quem trabalha com discador, e pode-se alterar o Ramal no logon -->
<div id="dvRamal" style="display:none;">
<table width="375" cellpadding="0" cellspacing="1" align="center">
<tbody>
<tr height="25">
<td width="35%">
<div align="right"><b>ramal:</b></div>
</td>
<td width="65%">
<div align="left"> <input size="20" maxlength="8" name="ramal" class=texto1></div>
</td>
</tr>
<tr>
<td bgColor="#cccccc" colSpan="3">
<img border="0" height="1" src="imagens/pixel.gif" width="1"></td>
</tr>
</tbody>
</table>
</div>
<!---------------------------------->
<input type=hidden name=refaz value="">
<input type=hidden id="SessionIDAsp" name="SessionIDAsp" value="354993413">
<br><div align="center"><input type=submit name=btConfirma value=" Entrar " class=texto1></div>
</form>
</body></html>
<script language=javascript>
<!--
frmlogin.usuario.focus();
//-->
</script>
JAVA:
[code]import org.jsoup.Connection;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
public class Crawler{
private static void visitaSite(String url){
try{
System.out.println("Visitando " + url);
Connection.Response connection = Jsoup.connect(url).data("usuario", "danilo", "senha", "senhadanilo")
.method(Connection.Method.POST).execute();
//eu sei qual o real nome do cookie
String sessao = connection.cookie("JSESSIONID");
//Document doc = Jsoup.connect(url).data("textoBusca", "algoASerEncontrado").cookie("SESSIONID", sessao).post();
//conecta no site e pega o codigo html
Document codigo = Jsoup.connect(url).userAgent("Mozilla").timeout(10*60*1000).get();
codigo = codigo.normalise();
//obtem o texto do site visitado
String pagina = codigo.text();
//Element teste = codigo.getElementById("dvRamal");
System.gc();
//System.out.println(" Site visitado ");
System.out.println(codigo);
codigo = null;
pagina = null;
}catch(Exception e){
visitaSite(url); }
}//end of visitaSite
public static void main(String args[]){
visitaSite(“http://192.168.0.6”);
while(true)
try {
Thread.sleep(60601000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}//main
}//end of class [/code]
Queria lembrar que eu sou iniciante, eu peguei um código já pronto e estou estudando ele, aprendendo com ele na verdade…aqui onde trabalho eu só tenho o site do GUJ e Javafree liberados para pesquisa, peço desculpa por colocar algo aqui que eu poderia ter pesquisado mais.
desde já, obrigado!