Hi.
Both twitter and facebook use default RestTemplate object configured with FormHttpMessageConverter. The default encoding for this converter is set to "ISO-8859-1", though UTF-8 should be used with Facebook and Twitter API.
Looks like a bug. I've overridden template constructors as a workaround:
probably there is a better solution?Code:List<HttpMessageConverter<?>> converters = getRestTemplate().getMessageConverters(); for (HttpMessageConverter<?> converter : converters) { if (converter instanceof FormHttpMessageConverter) { ((FormHttpMessageConverter) converter).setCharset(Charset.forName("UTF8")); } if(converter instanceof MappingJacksonHttpMessageConverter) { MappingJacksonHttpMessageConverter jsonConverter = (MappingJacksonHttpMessageConverter) converter; ObjectMapper objectMapper = new ObjectMapper(); objectMapper.registerModule(new FacebookModule()); objectMapper.configure(DeserializationConfig.Feature.FAIL_ON_UNKNOWN_PROPERTIES, false); jsonConverter.setObjectMapper(objectMapper); } }


Reply With Quote
