Spring REST字节模板

Tin*_*iny 3 java spring cxf spring-rest

我正在使用spring框架rest模板获取字节数组,但是我还需要获取此byte的Mediatype。

此字节数组的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);
Run Code Online (Sandbox Code Playgroud)

上面的代码将仅获取pdf内容类型。

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

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

任何建议都欢迎。

ped*_*ofb 6

只是不发送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);
Run Code Online (Sandbox Code Playgroud)

然后,content-type从响应的标题中提取

 byte body[] = result.getBody();
 MediaType contentType = result.getHeaders().getContentType();
Run Code Online (Sandbox Code Playgroud)


too*_*ooo 0

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