【发布时间】:2017-05-22 18:24:48
【问题描述】:
我是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"
}
}
【问题讨论】:
标签: spring-mvc wiremock