gpt4 book ai didi

spring-mvc - WireMock:如何模拟文件下载过程?

转载 作者:行者123 更新时间:2023-12-04 03:12:15 25 4
gpt4 key购买 nike

我是新来的 WireMock .我正在运行 WireMock服务器作为一个独立的进程。我可以通过在 /mappings 下配置 json 文件来模拟简单的 rest api文件夹。现在,我想模拟一个文件下载端点。我怎样才能做到这一点?

不知道有没有帮助,终点在Java/Spring,看起来像这样:

@RequestMapping(value = "xxx/get", method = {RequestMethod.GET})
public ResponseEntity<Object> getFile(HttpServletResponse response) throws Exception {

final Resource fileResource = fileResourceFactoryBean.getObject();

if (fileResource.exists()) {
try (InputStream inputStream = fileResource.getInputStream()) {
IOUtils.copy(inputStream, response.getOutputStream());

response.setContentType("application/octet-stream");
response.setHeader("Content-Disposition", "attachment; filename=" + fileResource.getFilename());

response.flushBuffer();
inputStream.close();

return new ResponseEntity<>(HttpStatus.OK);
} catch (Exception e) {
LOGGER.error("Error reading file: ", e);
return new ResponseEntity<Object>("Error reading file.", HttpStatus.BAD_REQUEST);
}
}

return new ResponseEntity<Object>(fileResource.getFilename() + " not found.", HttpStatus.BAD_REQUEST);
}

我在映射 json 文件中的响应部分如下所示:
"response": {
"status": 200,
"bodyFileName": "fileName", // file under __files directory
"headers": {
"Content-Type": "application/octet-stream"
}
}

最佳答案

文件下载实际上与发送标记或 JSON 没有什么不同。如果 Web 浏览器无法将 MIME 类型识别为可以呈现的类型,则它们会将文件视为下载。

要使用 WireMock 实现这一点,请尝试:

  • 在对 application/octet-stream 的响应中设置 Content-Type header
  • 设置响应以使用正文文件(您希望下载的文件)
  • 关于spring-mvc - WireMock:如何模拟文件下载过程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44119671/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com