【发布时间】:2017-09-11 08:54:46
【问题描述】:
我正在查询 PhraseApp API 以获取翻译并将标题上的内容类型设置为 appplication/json:
HttpHeaders requestHeaders = new HttpHeaders();
requestHeaders.setAccept(Arrays.asList(MediaType.APPLICATION_JSON));
但 API 会以附件形式发送响应,内容类型为 text/json; charset=UTF-8。 Spring引发了错误:
org.springframework.web.client.RestClientException: Could not extract response: no suitable HttpMessageConverter found for response type [class java.lang.String] and content type [text/json;charset=UTF-8]
我得到的回复如下:
{
"some.key.a": "some translation for a",
"some.key.b": "some translation for b",
"some.key.c": "some translation for c"
...
}
我希望将响应分配给一个字符串变量并稍后对其进行解析。 关于这里出了什么问题的任何想法?谢谢。
【问题讨论】:
-
像这样直接添加转换器:
private List<HttpMessageConverter<?>> getMessageConverters() { List<HttpMessageConverter<?>> converters = new ArrayList<>(); converters.add(new MappingJackson2HttpMessageConverter()); return converters; }然后restTemplate.setMessageConverters(getMessageConverters());没有解决问题...