使用spring resttemplate使用键值对

时间:2012-06-21 12:38:35

标签: java json spring rest resttemplate

理想情况下,我只想要一个字符串列表,或者Hashmap String,String:

List<String> = restTemplate.getForObject(url, List.class, urlVariables);

但是我收到错误无法提取响应:找不到适合的响应类型的HttpMessageConverter。

我可以使用restclient访问restful api并检索以下内容:

Content-Type    text/javascript; charset=iso-8859-1
回复机构是:

[{"name":"lemons"},{"name":"pears"},{"name":"apples"}]

我的restTemplate定义如下:

<bean id="restTemplate" class="org.springframework.web.client.RestTemplate">
        <property name="messageConverters">
            <list>
                <bean class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"/>                
            </list>
        </property>
    </bean>

2 个答案:

答案 0 :(得分:1)

我没有合适的测试项目,但请尝试:

<bean id="restTemplate" class="org.springframework.web.client.RestTemplate">
  <property name="messageConverters">
    <list>
      <bean class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter">
        <property name="supportedMediaTypes" value="text/javascript" />
      </bean>
    </list>
  </property>
</bean>

答案 1 :(得分:0)

我想你可能想看看这个:

https://spring.io/guides/gs/consuming-rest/

那页说:

  

如果您看到错误无法提取响应:没有为响应类型[类hello.Quote]找到合适的HttpMessageConverter,那么您可能处于无法连接到后端服务的环境中(如果您可以访问它,则会发送JSON) 。也许你是公司代理的幕后推手?尝试将标准系统属性http.proxyHost和http.proxyPort设置为适合您环境的值。

这正是你得到的。我知道最初的问题是在2012年,但是,希望其他人会将此视为一种可能的解决方案。