我正在使用 Spring Framework
RestTemplate
获取字节数组。
但我还需要获取所获取结果的媒体类型。
此字节数组的媒体类型可以是任何类型。
现在用于获取字节的代码如下。
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 内容类型。
所以我有以下问题:
欢迎任何建议。
只需不发送
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();
您可以在 HTTP 标头中存储媒体类型并使用 - 例如 ResponseEntity.getHeaders()。或者您可以将字节数组和媒体类型包装到holder类中。
MediaType mediaType = result.getHeaders().getContentType();