Spring RestTemplate供应商特定的媒体类型标头不起作用

时间:2019-04-21 18:26:20

标签: spring spring-boot resttemplate

当我尝试添加特定于供应商的标头(其说法不支持的媒体类型)时,我尝试将jersey api调用转换为spring boot resttemplate客户端调用。 我尝试过这样

  HttpHeaders headers = new HttpHeaders();
  headers.setAccept(Arrays.asList(MediaType.ALL));
  headers.setContentType(MediaType.ALL); 
  HttpEntity<String> entity = new HttpEntity<String>("parameters", headers);
  ResponseEntity<Admin> result = restTemplate.exchange(url, HttpMethod.GET, entity, Admin.class);

我什至尝试了媒体类型的不同组合,但没有奏效,我还尝试添加MediaType.parseMediaType("application/vnd.....);之类的媒体类型 请为此提供一些帮助。请让我知道什么是httpMessage转换器,以及如何将其添加到我们的自定义供应商特定媒体类型中。

2 个答案:

答案 0 :(得分:1)

您将无法使用setContentType(MediaType mediaType)设置自定义内容类型,因为它接受MediaType对象,您的自定义MediaType无法转换为该对象。

您可以使用以下设置自定义内容类型:

headers.set(HttpHeaders.CONTENT_TYPE,"application/custom");

答案 1 :(得分:0)

使用: headers.setContentType(MediaType.valueOf(VENDOR_MEDIA_TYPE));