Olá amigos do fórum,
Venho a voces novamente para que, se possivel, me ajudem com esse problema.
Estou trabalhando em um projeto com JSF onde haverá integração com o PagSeguro do UOL. O UOL pede pra, quando for enviado um POST para a url deles passando os dados da venda, sejam enviados com o encoding ISO-8859-1.
O que fiz por enquanto foi na minha página xhtml criar uma chamada a um metodo do bean que faz o seguinte:
pagSeguro = new PagSeguroTO();
pagSeguro.setUrlEnvio("http://localhost:8888/servidorpagseguro/venda/VendaPagSeguro");
pagSeguro.setEmailCobranca("[email removido]");
this.anuncio = arg;
try{
URL urlSend = new URL(pagSeguro.getUrlEnvio());
HttpURLConnection connection = (HttpURLConnection) urlSend.openConnection();
String parameters = getSendParameters();
connection.setDoOutput(true);
connection.setDoInput(true);
connection.setUseCaches(false);
connection.setRequestProperty("content-type", "application/x-www-form-urlencoded; charset=iso-8859-1");
connection.setRequestProperty("request-method","POST");
connection.connect();
OutputStreamWriter writer = new OutputStreamWriter(connection.getOutputStream(), "iso-8859-1");
writer.write(parameters);
writer.flush();
writer.close();
connection.getInputStream();
} catch (MalformedURLException e) {
System.err.println(e);
} catch (IOException e) {
System.err.println(e);
}
Nesse POST para o PagSeguro devem ser enviados via parametros os dados da venda, e os dados do cliente. Estou gerando os parametros da seguinte forma:
URLEncoder.encode("cliente_nome", ISO_8859_1), URLEncoder.encode(p.getNome(), ISO_8859_1)
Há outros parametros tambem que vou concatenando em uma String, e retorno ela ao metodo mais acima que faz a requisicao via HTTPURLConnection. Isso por enquanto está ok. Mas como nao há um ambiente de testes no UOL, estou tentando ( :lol: ) criar uma aplicação com o GWT para testar o envio dos parametros e outros requisitos do PagSeguro. E aí está o meu problema…
Nesse segundo projeto tem um servlet que recebe as chamadas (é a URL que estou me conectando), e quando leio o valor dos parametros, as palavras que tem acento estao vindo zoadas…tentei fazer um URLDecoder.decode passando ISO-8859-1 tambem, mas nao resolveu. Não sei se o problema é o encoding do app server embarcado no GWT, ou se há algum problema no envio dos meus dados…
O que estou fazendo está correto, esse URLEncoder.encode?Posso ter certeza que meus parametros estao indo com o encoding correto?E como recupero a palavra corretamente no outro lado?
Obrigado amigos!