我們有一個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. 如何通過HTTP流式傳輸一個響應netty
- 4. 在PHP中流傳輸大型SOAP響應
- 5. HTTP流傳輸響應不受支持消息類型:類org.jboss.netty.handler.stream.ChunkedStream
- 6. 如何處理空響應春季RestTemplate
- 7. 用clojure對Heroku進行HTTP流式傳輸/分塊響應
- 8. 使用akka http分塊響應流式傳輸JSON對象
- 9. 是否流式傳輸http響應塊nodejs?
- 10. 將文件流式傳輸到Pylons中的HTTP響應中
- 11. 使用Jetty流式傳輸HTTP響應AsyncProxyServlet
- 12. JSON響應:春季與JAXB
- 13. 用django-import-export流式傳輸響應
- 14. 春季集成HTTP流入站通道
- 15. Apple HTTP LIVE流式傳輸
- 16. Flash HTTP流式傳輸
- 17. 大型3D場景流式傳輸
- 18. 流式傳輸大型SOAP附件
- 19. 如何在Rails 3.2中流式傳輸大型XML?
- 20. HTTP響應異步大型響應
- 21. 使用node.js傳遞Http響應到網頁的流傳輸
- 22. GET HTTP春季XML
- 23. 在.Net中進行HTTP流式傳輸
- 24. 上傳音頻-http流式傳輸
- 25. 春季用盡請求的輸入流
- 26. 在播放中的合成動作中流式傳輸http響應! Framework 2.1
- 27. 如何使用JAXB Marshaller流式傳輸大型文件?
- 28. 春季集成:發送響應到客戶http入站網關
- 29. 春季HTTP嚴格傳輸安全性(HSTS)和FireFox
- 30. 如何使用Play 2.5在分塊響應中將Anorm大型查詢結果流式傳輸到客戶端
只能返回從一個單一的請求的單一響應。 –