Мой API вызывает сторонний веб-сервис, который возвращает строку, как показано ниже:
{
"message": "You have £100 in your account"
}
Когда я регистрирую ответ в своем приложении, ответ регистрируется следующим образом:
{
"message": "You have £100 in your account"
}
Я использовал почтальон, чтобы проверить ответ третьей стороны, и он отправляет правильный ответ.Так что, каким-то образом мой restTemplate не может справиться с этим правильно.Я просмотрел несколько постов и добавил StringHttpMessageConverter
с Charset.UTF_8
, но это тоже не сработало.`
Обновление:
Ниже приведен фрагмент кода:
public <T, S> ResponseEntity<S> send(HttpMethod method,
HttpHeaders headers,
T requestBody,
URI uri,
Class<S> responseClass)
throws IOException {
HttpEntity<T> httpEntity =
new HttpEntity<>(requestBody, headers);
restTemplate.getMessageConverters()
.add(0, new StringHttpMessageConverter(StandardCharsets.UTF_8));
log.info("Calling {} {} {}", method.toString(), uri.toString(), headers.toString());
log.info(mapper.writeValueAsString(requestBody));
try {
ResponseEntity<S> responseEntity =
restTemplate
.exchange(uri,
method,
httpEntity,
responseClass);
return responseEntity;
} catch (HttpStatusCodeException statusCodeException) {
log.info("-------------- " + statusCodeException.getResponseBodyAsString());
}
}