Programa Java interagindo com pagina WEB

Pessoal,

Estou desenvolvendo um software que ira interagir com algumas paginas web, eh um software que centralizara a administracao de diversos equipamentos wireless que possuem interface web.

Bom, preciso saber como chamar essas urls para executar uma acao, da seguinte forma:

http://10.0.0.3/cfg?page=remove&target=4&id=4452

A url acima remove uma determinada configuracao no equipamento, preciso saber como “chama-la”, capturar o resultado nem eh tao importante, pois tenho outros meios de saber se o comando foi executado.

Outro problema, esse “site” tem um formulario de login, portanto, se eu tentar chamar aquela url sem efetuar o login, o comando vai falhar. Preciso saber tambem como efetuar este login, estou postando logo abaixo o codigo do formulario de login…

<form name="loginForm" action="/cfg" method="post">
<input type="hidden" name="process" value="login"/>
<input type="hidden" name="page" value="start"/>

<input type="hidden" name="backpage" value="/"/>

&lt;input type="text" name="user" value="" style="margin-bottom: 4px; margin-top: 4px;"/&gt;<br/>
&lt;input type="password" name="password" style="margin-bottom: 4px;"/&gt;<br/>
&lt;input type="submit" onclick="doLogin();" name="" value="Login"/&gt;

Se eu tiver como passar essas variaveis process, start, user, password para o servidor web e depois chamar a url que eu quero para remover, editar, inserir, etc acho que vai funcionar.

Muito obrigado a todos,

Kemper

O Primeiro problema jah foi resolvido…

Jah consegui efetuar o login lah no servidor, da seguinte forma:


		try {
			URL loginUrl;
			URLConnection urlConn;
			DataOutputStream printout;
			DataInputStream input;
			
			loginUrl = new URL("http://10.0.0.3/cfg?process=login&backpage=/cfg&page=start&user=admin&password=parahilmanoide");
			
			urlConn=loginUrl.openConnection();
	
			urlConn.setDoInput(true);
			urlConn.setDoOutput(true);
			urlConn.setUseCaches(false);
			urlConn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
			printout = new DataOutputStream(urlConn.getOutputStream());
			printout.flush();
			printout.close();
			input = new DataInputStream(urlConn.getInputStream());
			String str;
			while (null != ((str = input.readLine()))) {
				System.out.println(str);
			}
			input.close();
		} catch (Exception ee) {
			System.out.println(ee.getMessage());
		}

O Trecho acima consegue efetuar o login no servidor… (o while eh soh pra eu ver o resultado! rs)

Agora, nao sei como, na sequencia chamar a url que vai executar a acao que eu quero, pois se tento chama-la, ele tipo “perde a senha”, tem que ter alguma forma de armazenar essa sessao pra eu chamar as urls dentro da secao que jah esta logada!
A pagina em questao eh essa:

http://172.17.0.1/cfg?page=remove&target=4&id=4454

Porque você não usa Webservices ?

A Interface web que eu tenho que interagir nao fui eu quem fez. Ela vem interna num equipamento, eh um radio, nem hd a coisa tem.

A nao ser que estes “webservices” vao conseguir interagir com o tal do equipamento

Com certeza WebServices vai funcionar. Pelo que entendi, você está interagindo com um sistema que está te retornando valores via http. Correto?

Então, pode ser que dê certo.

Eu sei que dá para fazer essa conversação, inclusive com o cookie de sessão que normalmente o servidor http envia (se você olhar a conversão HTTP usando um analisador de protocolo como o Ethereal (Linux) ou o Network Monitor ou o WinPCAP (Windows), vai ver que o servidor lhe manda um comando “Set-Cookie:” na resposta com um identificador de sessão), mas não tenho um exemplo pronto disso.

Se você não encerrar a conversação, acho que o URLConnection sabe o que são cookies de sessão e (deveria) trabalhar direitinho, mas não tenho um exemplo pronto disso.

[quote=biancuzzi]Com certeza WebServices vai funcionar. Pelo que entendi, você está interagindo com um sistema que está te retornando valores via http. Correto?

Então, pode ser que dê certo.[/quote]

Eu nao preciso dos valores retornados, preciso soh chamar a url, sei que vai funcionar sempre se a url for chamada.

[quote=thingol]Eu sei que dá para fazer essa conversação, inclusive com o cookie de sessão que normalmente o servidor http envia (se você olhar a conversão HTTP usando um analisador de protocolo como o Ethereal (Linux) ou o Network Monitor ou o WinPCAP (Windows), vai ver que o servidor lhe manda um comando “Set-Cookie:” na resposta com um identificador de sessão), mas não tenho um exemplo pronto disso.

Se você não encerrar a conversação, acho que o URLConnection sabe o que são cookies de sessão e (deveria) trabalhar direitinho, mas não tenho um exemplo pronto disso.

[/quote]

OK, eu jah cheguei ateh esse ponto aki:

URL loginUrl;
URLConnection urlConn;
loginUrl = new URL("http://10.0.0.3/cfg?process=login&backpage=/cfg&page=interface&user=admin&password=minhasenha");
urlConn=loginUrl.openConnection();

soh preciso entao chamar a proxima url dentro do mesmo objeto URLConnection, mas nao consegui fazer…

URL loginUrl;
URLConnection urlConn;
loginUrl = new URL("http://10.0.0.3/cfg?process=login&backpage=/cfg&page=interface&user=admin&password=minhasenha");
urlConn=loginUrl.openConnection();
//CHAMAR A PROXIMA URL AQUI...
//http://10.0.0.3/cfg/delete?object=queue&id=34

Por favor, alguem me ajude, jah tentei de tudo, nao consigo chamar a proxima url dentro da mesma “secao”

:frowning: