我正在实现一个使用Apache POI和Java 1.8创建Excel文件并将其作为响应返回的API。
@GetMapping(value = "/download", produces = "application/vnd.ms-excel")
public ResponseEntity<byte[]> downloadExcel(@RequestParam String param) throws IOException {
XSSFWorkbook workbook = service.createExcel(param);
ByteArrayOutputStream stream = new ByteArrayOutputStream();
workbook.write(stream);
workbook.close();
return ResponseEntity.ok()
.body(stream.toByteArray());
}
当我尝试用Postman调用API时,我得到了这个错误:
"title": "Internal Server Error",
"status": 500,
"detail": "No converter for [class [B] with preset Content-Type 'null'"
如果我将该文件保存到我的机器上,我可以看到该文件正在正确生成。所以真正的问题在于答案。如果我删除mime类型,API会返回200状态,但内容混乱,不能在excel中打开。
发布于 2021-09-17 18:34:00
我找到了导致错误的原因。有人在接口中设置了HttpMessageConverters,并使其返回Content-Type:“应用程序/问题+json”。
https://stackoverflow.com/questions/69215084
复制相似问题