我有以下端点,它创建一个Excel文件,并将其添加到outputstream.我想查看Excel,并检查它是否正确构造,但我无法通过OpenAPI下载它. OpenAPI下载一个txt文件,而不是Excel,当更改扩展名和打开Excel时,我得到有关文件格式的错误.
Java端点代码段
@ApiResponses(value = {
@ApiResponse(responseCode = "200", content = @Content(mediaType = "application/vnd.ms-excel"))
@PostMapping(value = "/download-excel")
@ResponseStatus(HttpStatus.OK)
public void getExcelForIds(
@RequestBody List<Long> ids,
HttpServletResponse response
) throws IOException {
response.setContentType("application/vnd.ms-excel");
response.setHeader(HttpHeaders.CONTENT_DISPOSITION, "inline;filename=\"myfilename.xlsx\"");
excelWriter.writeIdsToExcel(ids, response.getOutputStream());
}
字符串
来自OpenAPI
的响应
1条答案
按热度按时间k7fdbhmy1#
这只是一个错误的呈现问题。OpenAPI响应已经表明它不识别响应类型。这并不意味着它是一个错误的响应,只是OpenAPI不支持它的呈现。它试图将其呈现为文本,但也失败了。菱形中的所有问号都是无法正确转换为字符的字节-因为它们不是字符。
当你把这个错误的响应复制到一个文件中并命名为
.xlsx
时,你的文件并不包含来自服务器的实际响应,所有那些不能格式化的字节都被修改了。要正确地测试这一点,请使用更好的工具: