我使用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。
欢迎提出任何建议。
答案 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