用于字节的Spring REST模板

时间:2016-11-04 16:01:00

标签: java spring cxf spring-rest

我使用spring framework rest模板获取字节数组, 但我还需要获取此字节的Mediatype。

此bytearray的mediaType可以是任何类型。

现在用于获取字节的代码如下。

   HttpHeaders headers = new HttpHeaders();
   headers.setAccept(Collections.singletonList(MediaType.valueOf("application/pdf")));
   ResponseEntity<byte[]> result = restTemp.exchange(url, HttpMethod.GET, entity, byte[].class,documentId);

以上代码仅提取pdf内容类型。

如何设置contentType以接受任何通用MediaType,因为另一端的服务为byteArray提供任何随机MediaType。

有人可以建议如何获取MediaType。

欢迎提出任何建议。

4 个答案:

答案 0 :(得分:5)

不发送accept标头,不强制服务器返回content-type。这与发送通配符*/*

相同
//HttpHeaders headers = new HttpHeaders();
//headers.setAccept(Collections.singletonList(MediaType.WILDCARD));
ResponseEntity<byte[]> result = restTemp.exchange(url, HttpMethod.GET, entity, byte[].class,documentId);

在此之后,从响应的标题中提取content-type

 byte body[] = result.getBody();
 MediaType contentType = result.getHeaders().getContentType();

答案 1 :(得分:0)

您可以在HTTP标头中存储媒体类型,并使用 - ResponseEntity.getHeaders()。或者你可以将字节数组和媒体类型包装到holder类中。

答案 2 :(得分:0)

MediaType mediaType = result.getHeaders()。getContentType();

答案 3 :(得分:0)

您可以将MediaType设置为application/octet-stream,查看here