我们有一个HTTP请求,当它在服务器中处理时会创建一个大小约为3GB的响应,这个数据是对数据库的6个查询的聚合,我们如何将这些数据作为单独的响应发送6个查询而不是聚合。如何在春季流式传输大型HTTP响应
0
A
回答
0
我这样做:
@GetMapping("/{fileName:[0-9A-z]+}")
@ResponseBody
public ResponseEntity<InputStreamResource> get_File(@PathVariable String fileName) throws IOException {
Files dbFile = fileRepository.findByUUID(fileName);
if (dbFile.equals(null))
return new ResponseEntity<>(HttpStatus.NOT_FOUND);
String filename = dbFile.getFileName();
Resource file = storageService.loadAsResource(dbFile.getFileName());
long len = 0;
try {
len = file.contentLength();
} catch (IOException e) {
e.printStackTrace();
}
MediaType mediaType = MediaType.valueOf(FileTypeMap.getDefaultFileTypeMap().getContentType(file.getFile()));
if (filename.toLowerCase().endsWith("mp4") || filename.toLowerCase().endsWith("mp3") ||
filename.toLowerCase().endsWith("3gp") || filename.toLowerCase().endsWith("mpeg") ||
filename.toLowerCase().endsWith("mpeg4"))
mediaType = MediaType.parseMediaType("application/octet-stream");
InputStreamResource resource = new InputStreamResource(new FileInputStream(file.getFile()));
return ResponseEntity.ok()
.contentType(mediaType)
.contentLength(len)
.header(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=\"" + file.getFilename() + "\"")
.body(resource);
}
0
StreamingResponseBody用于异步请求处理,其中应用程序可以直接写入响应输出流。
结帐本文
http://www.logicbig.com/how-to/code-snippets/jcode-spring-mvc-streamingresponsebody/
http://shazsterblog.blogspot.in/2016/02/asynchronous-streaming-request.html
相关问题
- 1. 使用NodeJS流式传输Http响应
- 2. 以Java流式传输HTTP响应
- 3. 在PHP中流传输大型SOAP响应
- 4. HTTP流传输响应不受支持消息类型:类org.jboss.netty.handler.stream.ChunkedStream
- 5. 使用Jetty流式传输HTTP响应AsyncProxyServlet
- 6. 将文件流式传输到Pylons中的HTTP响应中
- 7. 使用akka http分块响应流式传输JSON对象
- 8. 是否流式传输http响应块nodejs?
- 9. 用django-import-export流式传输响应
- 10. Flash HTTP流式传输
- 11. Apple HTTP LIVE流式传输
- 12. 春季集成HTTP流入站通道
- 13. 大型3D场景流式传输
- 14. HTTP响应异步大型响应
- 15. 使用node.js传递Http响应到网页的流传输
- 16. 在.Net中进行HTTP流式传输
- 17. 在播放中的合成动作中流式传输http响应! Framework 2.1
- 18. 春季用尽请求的输入流
- 19. 春季集成:发送响应到客户http入站网关
- 20. 如何使用Play 2.5在分块响应中将Anorm大型查询结果流式传输到客户端
- 21. 在.NET中序列化大型JSON和通过HTTP流式传输
- 22. 在iOS设备上通过http流式传输并下载大型视频
- 23. 如何在春季
- 24. 如何在春季使用泛型?
- 25. 我们如何在春季缓存webservice响应?
- 26. 如何在后台通过HTTP流式传输MP3?
- 27. 如何将浏览器的流氓响应流式传输到浏览器?
- 28. 春季集成 - TCP - 响应相关
- 29. 春季webflow转换空响应
- 30. 春季无法用XML响应
只能返回从一个单一的请求的单一响应。 –