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.

Tags:
Petter Rafael
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.

Assinar blog por e-mail

Digite seu endereço de e-mail para assinar este blog e receber notificações de novas publicações por e-mail.

Junte-se a 325 outros assinantes

Busca

julho 2020
DSTQQSS
 1234
567891011
12131415161718
19202122232425
262728293031 

Categorias