URLConnection, como pegar o retorno

13 respostas
D

Bom dia a todos!

Ontem estava desenvolvendo uma rotina para fazer a validação das aplicações nos clientes.

Uso Seam e JSF, as demais aplicações já estão vindo ate o servidor com todos os parâmetros necessários tudo ok, isso via URLConnection, agora preciso retorna um objeto para as aplicações que
que vieram ate meu servidor fazer a validação, mas não estou conseguindo.

Alguém já fez isso ou tem alguma sugestão de como retornar um objeto para as aplicações que vierem até o meu servidor por URLConnection?

Obrigado até mais.

Desde já muito agradecido.

13 Respostas

D

Já pensou em fazer isso com Web Services amigo?

D

Sim, já pensei sim. Mas não cheguei a implementar ainda.

Você teria algum exemplo para eu me basear, se puder me ajudar agradeço.

Até mais.

D

Você poderia trabalhar com web services REST por ser bem mais simples de aprender e implementar.

aqui um tutorial bom para começar:
http://www.k19.com.br/artigos/criando-um-webservice-restful-em-java/

espero ter ajudado.

D

Ajudou sim, muito obrigado, vou começar a estudar.

D

dan20 você já deve ter usado esse recurso.

Se sim, me tira uma duvida, quando uma aplicação de um servidor externo acessar minha aplicação como ficaria o retorno para ele?

Obrigado, até mais.

D

Bem, pelo que entendi você tem uma aplicação cliente fazendo alguma requisição ao seu servidor para validação, e seu servidor retornará uma resposta ao cliente. No caso de usar web sevices esse retorno poderá ser um xml ou json, e sua aplicação cliente deverá ter algum mecanismo para ler essas informações.

J

Como o dan20 disse você pode fazer esse retorno com xml ou json mesmo… Você pode implementar isso usando o próprio vRaptor que pode te ajudar bastante com os Results que tem nele…
E pra fazer acesso ao servidor evite fazer isso na ‘mãozona’ com URLConnection, utilize a HttpClient da apache ela provê mecanismos mais elaborados para acessar conteúdos web.

http://hc.apache.org/httpclient-3.x/
http://www.vogella.com/articles/ApacheHttpClient/article.html

R

para obter o resultado da requisição é só chamar o connection.getInputStream():

String result = readStream(connection.getInputStream());

Aqui está o readStream

public static String readStream(InputStream in) {
		BufferedReader reader = null;
		StringBuilder builder = new StringBuilder();
		try {
			reader = new BufferedReader(new InputStreamReader(in));
			String line = null;
			while ((line = reader.readLine()) != null) {
				builder.append(line + "\n");
			}
		} catch (IOException e) {
			e.printStackTrace();
		} finally {
			if (reader != null) {
				try {
					reader.close();
				} catch (IOException e) {
					e.printStackTrace();
				}
			}
		}
		return builder.toString();
	}
D

Ramon Pires, obrigado também pela ajuda.

Dessa forma criei uma página simples e estou pegando todo o retorno.

Por exemplo:

CONTACT_NAME = XXXXXX
CONTACT_EMAIL = XXXXXX
EXPIRATION_DATE = XXXXX

Mas agora perguntado a todo mundo, Isso me parece um pouco sem proteçao, vou ler o arquivo e usar os dados que preciso, essa é a melhor prática, na minha mente eu retornaria um OBJECT com todos os dados.

O que me dizem.

Lembrando que ainda estou estudando todas as outras possibilidades.

J

Criptografa a resposta a ser enviada então…

D

jweibe, obrigado!

Opa, estava pensando nisso já, uma criptogrfia RSA resolve tudo.

Mas então essa é a forma correta de fazer isso que estou implementando?

Obrigado, até mais.

J

Danilo Carvalho:
jweibe, obrigado!

Opa, estava pensando nisso já, uma criptogrfia RSA resolve tudo.

Mas então essa é a forma correta de fazer isso que estou implementando?

Obrigado, até mais.

Cara só para entender a situação as aplicações java que estarão nos clientes tem alguma autenticação para ser feita no servidor?
Sei la cada ponto remoto seu tem um hash que o identifique no servidor? Se tiver é só fazer um filtro para verificar este acesso,
se que estiver acessando não for identificado a requisição será negada, pra ajudar na segurança você pode usar HTTPS.
Quanto a resposta você criptografa ela e devolve pro cliente e la no cliente você descriptografa ela, acho que isso deve resolver seu
problema.

D

jweibe, é isso mesmo.

Só que cada cliente ao acessar o meu servidor envia o numero da sua licença que é um guid que é e gerada e entregue junto a a aplicação, no meu servidor ficam o restante dos dados como por exemplo a data de expiração, assim o cliente
precisa passar no meu servidor para buscar esse dado e mais alguns.

Obrigado, agora acho que estou quase lá.

Criado 11 de janeiro de 2013
Ultima resposta 11 de jan. de 2013
Respostas 13
Participantes 4