Requisição HTTP x Charset

1 resposta
W

Boa tarde Sr(a)s.

Tenho uma aplicação Java que faz uma chamada Http a um serviço do GoogleMaps para geocodificação e que está
retornando os caracteres acentuados de maneira errada.

HttpClient client = new HttpClient();
        client.getHostConfiguration().setHost("maps.google.com/maps/geo");
        Protocol.registerProtocol("http",
                new Protocol("http", new DefaultProtocolSocketFactory(), 8080));
        GetMethod httpget = new GetMethod("http://maps.google.com/maps/geo?q=" + lat1+","+lon1 + "&output=csv");

        client.executeMethod(httpget);

        InputStream stream = httpget.getResponseBodyAsStream();
        BufferedReader rd = new BufferedReader(new InputStreamReader(stream));

        String strRetorno = rd.readLine();

Se coloco a url direto no browser ele retorna os dados de maneira correta :

Ex: http://maps.google.com/maps/geo?q=-22.4344,-54.222 &output=csv

Porém ao debugar verifique que a variável de retrono “strRetorno” recebe os dados de maneira incorreta.

Como devo fazer para setar o conjunto de caracteres na requisição http.

Obrigado.

1 Resposta

Andre_Fonseca

oi,

Algo parecido com o código abaixo

URI uri = URIUtils.createURI("http", host, port, path, URLEncodedUtils
					.format(qparams, encoding), null);

Qualquer coisa dê uma olhada no javadoc do HTTPClient

Criado 30 de setembro de 2011
Ultima resposta 30 de set. de 2011
Respostas 1
Participantes 2