Pensei em postar essa questão nas issues do Restfulie mas como nem sei se o projeto ainda está “ativo”, hehe, e como o pessoal da Caelum e outros usuários dessa lib frequentam o Guj vai aqui mesmo.
Amigos, estou usando o Restfulie para consultar um serviço que retorna um json, e uma das propriedades tem o valor “São Paulo”. Acontece que a resposta retornada pelo Restfulie está quebrando os caracteres da acentuação. Debugando um pouco percebi algumas coisas,
. o http response retornado tem o cabeçalho “Content-Type” como “application/json”, sem informação do charset (como por ex “application/json; charset=UTF-8”),
. o Apache Http Client, usado internamente pelo Restfulie, tenta decodar a resposta usando o charset informado no header “Content-Type” da resposta, como nesse exemplo que dei; como esse charset não está vindo na resposta por padrão é usado ISO-8859-1, o que está quebrando o acento da palavra “São Paulo”
No desespero, hehe, eu peguei o código do Restfulie no Github e “corrigi”, minha implementação foi a seguinte,
. usar o charset definido no header “Accept-Charset” da requisição original, se houver, OU
. usar o charset que consta no “Content-Type” da requisição original, se houver,
. se não houver segue a implementação padrão do Apache Http Client (ler o content-type do response, ou usar ISO-8859-1)
. aí mandei na minha requisição esses cabeçalhos passando UTF-8 e resolveu
Isso seria um “bug”, um potencial ponto de correção no Restfulie, ou outros usuários já passaram por isso?
Obrigado!