HttpURLConnection

7 respostas
fmduque

Estava lendo o artigo “Fazendo um request Http” e criei o seguinte script:

String nmpagina = "http://www.google.com/";
HttpURLConnection conexao = null;
try {
   URL url = new URL(nmpagina);
   conexao = (HttpURLConnection)url.openConnection();
   conexao.setRequestProperty("Request-Method","GET");
	
   conexao.setDoInput(true);
   conexao.setDoOutput(false);
		
   conexao.connect();
		
   BufferedReader br = new BufferedReader(new InputStreamReader(conexao.getInputStream()));
		
   StringBuffer newData = new StringBuffer(10000);
   String s = "";
   while (null != ((s = br.readLine()))) {
      newData.append(s);
   }
   br.close();
		
   out.println(new String(newData));

   }
catch (Exception e) {
   out.print ("Erro: " + e);
}

Quando abro a página jsp as palavras que tem acento são trocadas por interrogação, tipo: Tópico vira T?pico.

Tem como resolver esse tipo de problema?

7 Respostas

C

nao tenho certeza, mas talvez setar o encoding resolva…
deve ter algum lugar ai que vc consiga setar isso…

UTF-8 ou ISO-8559-1 (ou seria ISO-8859-1?)

[]s

fmduque

É chambs, acho que naum é isso… naum encontrei nenhum método que podesse setar a propriedade. Encontrei um que pega o ContentType, seria assim

conexao.getContentType();

e isso me retorna “text/html; charset=iso-8859-1”

Mesmo assim valeu pela força e tem mais alguma sugestão? :wink:

C

cara, será que não é seu jsp que ta zoando o codigo?
faz um teste. depois de pegar os dados do inputStream, da um System.out.println na string e ve no tomcat. eu acho que la deve aparecer certo… ou grava num arquivo de texto sei la…
em suma, confirma se os dados estão chegando pra vc com erro ou se vc eh ke esta montando com erro…

T

InputStreamReader tem um construtor de dois parâmetros que aceita o encoding. Experimente ver qual é o valor certo, se é “ISO-8859-1” ou “UTF-8”.

fmduque

Valeu galera, agora sim!!!

Foi só alterar o ImputStreamReader msm, acrecentando o segundo parametro, como sugerido pelo thingol.

BufferedReader br = new BufferedReader(new InputStreamReader(conexao.getInputStream(),"iso-8859-1"));
fabio.cbrandao

Esse tópico salvou minha vida, valeu Gujeiros… rs!!!

:smiley:

JotaJota

Cara, como vc faz pra que ele faça o redirect para a pagina do google com resultado?
Eu ainda não consegui nada a respeito aqui. poderiam me ajudar?

o que deve ser retornado para que o HTTPURLConnection faça o redirect automatícamente?

Att.,

Criado 14 de outubro de 2004
Ultima resposta 27 de out. de 2010
Respostas 7
Participantes 5