当前位置:   article > 正文

RestClientException: Could not extract response: no suitable HttpMessageConverter found for response_org.springframework.web.client.restclientexception

org.springframework.web.client.restclientexception: could not extract respon

今天请求百度的鹰眼服务返回下面的错误:

  1. org.springframework.web.client.RestClientException: Could not extract response: no suitable HttpMessageConverter found for response type [class com.GetDistanceResultDto] and content type [text/javascript;charset=UTF-8]
  2. at org.springframework.web.client.HttpMessageConverterExtractor.extractData(HttpMessageConverterExtractor.java:121)
  3. at org.springframework.web.client.RestTemplate$ResponseEntityResponseExtractor.extractData(RestTemplate.java:994)
  4. at org.springframework.web.client.RestTemplate$ResponseEntityResponseExtractor.extractData(RestTemplate.java:977)
  5. at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:736)
  6. at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:669)
  7. at org.springframework.web.client.RestTemplate.exchange(RestTemplate.java:607)
  8. at com.hebeiwanteng.drivingserver.basic.utils.HttpRequsetUtil.exchange(HttpRequsetUtil.java:84)

无法提取响应:没有为响应类型[class com..getDistanceResultTo]和内容类型[text/javascript]找到合适的HttpMessageConverter;字符集=UTF-8]

这一下就知道怎么处理了  在 HttpMessageConverter  增加 MediaType 是  [text/javascript] 类型的;

代码如下:

  1. private static final RestTemplate restTemplate = createRestTemplate();
  2. synchronized static RestTemplate createRestTemplate() {
  3. RestTemplate restTemplate = new RestTemplate();
  4. MappingJackson2HttpMessageConverter mappingJackson2HttpMessageConverter = new MappingJackson2HttpMessageConverter();
  5. mappingJackson2HttpMessageConverter.setSupportedMediaTypes(Arrays.asList(
  6. MediaType.APPLICATION_JSON_UTF8,
  7. MediaType.APPLICATION_JSON,
  8. MediaType.TEXT_HTML,
  9. MediaType.TEXT_PLAIN));
  10. restTemplate.getMessageConverters().add(mappingJackson2HttpMessageConverter);
  11. return restTemplate;
  12. }

重点来了:

org.springframework.http.MediaType 中没有   [text/javascript] .

所以需要自己定义代码如下:

      MediaType textMediaType = MediaType.parseMediaType("text/javascript;charset=UTF-8");

把自己定义的 textMediaType  添加到上面自己定义的 MappingJackson2HttpMessageConverter 中;

  1. synchronized static RestTemplate createRestTemplate() {
  2. RestTemplate restTemplate = new RestTemplate();
  3. MediaType textMediaType = MediaType.parseMediaType("text/javascript;charset=UTF-8");
  4. MappingJackson2HttpMessageConverter mappingJackson2HttpMessageConverter = new MappingJackson2HttpMessageConverter();
  5. mappingJackson2HttpMessageConverter.setSupportedMediaTypes(Arrays.asList(
  6. MediaType.APPLICATION_JSON_UTF8,
  7. MediaType.APPLICATION_JSON,
  8. MediaType.TEXT_HTML,
  9. textMediaType,
  10. MediaType.TEXT_PLAIN));
  11. restTemplate.getMessageConverters().add(mappingJackson2HttpMessageConverter);
  12. return restTemplate;
  13. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/黑客灵魂/article/detail/813956
推荐阅读
相关标签
  

闽ICP备14008679号