我們有一個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響應
只能返回從一個單一的請求的單一響應。 –