Как преобразовать byte [] в ResponseEntity <Striing> как appplication/octet-stream
Мое приложение построено на SprinBoot, Java Technology. Я хочу написать API для загрузки файла, и я использую плагин swagger-codegen-maven-plugin, и в спецификации он упоминается ниже для загрузки файла.
content:
application/octect-stream:
schema:
type: string
format: binary
Код, который автоматически создается с помощью кодогенератора swagger, содержит тип возврата какResponseEntity<String>
в приложении java SpringBoot. Теперь у меня есть данные файла в byte[], как преобразовать их в String и отправить как application/octect-stream?.
Также дайте мне знать, если мои данные находятся в объекте File в команде byte[], как их отправить?
1 ответ
Если предполагается, что ваш API возвращает файл, который должен быть загружен в качестве ответа, тогда ваш API должен возвращать responseResponseEntity. Ниже приведен снимок кода, который вы можете попробовать.
private ResponseEntity<ByteArrayResource> getRespEntity(Byte[] fileByte) {
ByteArrayResource resource = new ByteArrayResource(fileByte);
HttpHeaders headers = new HttpHeaders();
headers.add("Cache-Control", "no-cache, no-store, must-revalidate");
headers.add("Pragma", "no-cache");
headers.add("Expires", "0");
return ResponseEntity.ok().headers(headers).contentLength(resource.contentLength())
.contentType(MediaType.parseMediaType("application/octet-stream"))
.body(resource);
}