Lendo uma URL com Java

[ad#texto]

Vários desenvolvedores Java tem dificuldade em conseguir ler uma URL qualquer e conseguir obter o seu retorno para então trabalha-lo dentro do seu código, seja o retorno um XML, texto ou HTML.

Neste artigo iremos acionar uma URL utilizando Java e iremos exibir o retorno via console, sem realizar nenhum tipo de tratamento, formas de tratar um HTML ou XML fica para um próximo artigo sobre Java.

O primeiro passo vamos declarar as variáveis que iremos utilizar, a sua própria tipagem já deixa seu uso auto-explicativo:

String linha = "";

DataOutputStream retorno = null;

HttpURLConnection conexao;

BufferedReader bin = null;

StringBuilder fluxo = new StringBuilder();

Agora vamos normalizar a URL e inicializar o processo que irá de fato abrir a conexão e acionar a URL, fazendo o request:

URL urlNormal = new URL(“http://www.minhaurl.com.br”);

conexao = (HttpURLConnection) urlNormal.openConnection();

Agora vamos definir os parâmetros que irão permear toda a conexão com a URL e irá permitir ao Java estabelecer limites e formas de lidar com a requisição:

conexao.setConnectTimeout(250000);

conexao.setRequestMethod("POST");

conexao.setRequestProperty("Content-Type","application/x-www-form-urlencoded");

conexao.setRequestProperty("Content-Length", "" + Integer.toString(params.toString().getBytes().length));

conexao.setRequestProperty("Content-Language", "pt-BR");

conexao.setUseCaches (false);

conexao.setDoInput(true);

conexao.setDoOutput(true);

Neste ponto preste atenção na definição do timeout e veja se é o suficiente para dar o tempo de resposta necessário ao servidor, pois caso contrário o Java irá cortar a requisição antes de finalizado o processo do lado do servidor.

Outro ponto de atenção é quanto ao método, aqui utilizamos o método POST, pois devido ao fato do método GET transitar via URL às informações ele sofre de limite do tamanho da URL formada, veja se realmente o POST irá atender as suas expectativas.

Agora vamos de fato executar o método getOutputStream() que é o responsável por capturar o response do servidor:

retorno = new DataOutputStream (conexao.getOutputStream());

retorno.writeBytes (params.toString());

retorno.flush ();

retorno.close ();

Agora com o response já captura pelo Java vamos trata-lo e deixa-lo disponível para uso pelo restante da sua aplicação:

bin = new BufferedReader(new InputStreamReader(conexao.getInputStream(), "UTF-8"));

while ((linha = bin.readLine()) != null){

  fluxo.append(linha);

}

Para melhorar o retorno da URL vamos tratar o charset do retorno, aqui utilizamos o formato ISO que é o mais comum, mas você pode tratar com qualquer outro formato suportado pelo Java:

String fluxoISO = URLDecoder.decode(fluxo.toString(), "ISO-8859-1");

Muito fácil.

Aqui acionamos uma URL utilizando Java e recuperamos o seu retorno e o tratamos para deixa-lo armazenado em uma String como charset devidamente tratado.

Petter Rafael

Desenvolvedor Web atua com as tecnologias Java e PHP apoiadas pelos bancos de dados Oracle e MySQL. Além dos ambientes de desenvolvimento acima possuiu amplo conhecimento em servidores Apache/Tomcat, Photoshop, Arte & Foto, Flash e mais uma dezena de ferramentas e tecnologias emergentes. Atualmente colabora com o Viablog escrevendo sobre programação e tecnologia.
ViamaisBLOG
Privacy Overview

This website uses cookies so that we can provide you with the best user experience possible. Cookie information is stored in your browser and performs functions such as recognising you when you return to our website and helping our team to understand which sections of the website you find most interesting and useful.