ResponseEntity 流写法
时间: 2023-08-22 11:05:06 浏览: 210
在 Spring MVC 中,我们可以使用 ResponseEntity 类来表示 HTTP 响应。它可以让我们更加灵活地控制 HTTP 响应的状态码、头信息和正文内容等。
下面是使用 ResponseEntity 流写法的示例代码:
@GetMapping("/download")
public ResponseEntity<Resource> downloadFile() throws IOException {
// 从文件系统中获取文件对象
File file = new File("path/to/file");
// 构造文件资源对象
Path path = Paths.get(file.getAbsolutePath());
Resource resource = new InputStreamResource(Files.newInputStream(path));
// 构造 HTTP 响应对象
HttpHeaders headers = new HttpHeaders();
headers.add(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=file.txt");
headers.add(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_OCTET_STREAM_VALUE);
headers.add(HttpHeaders.CONTENT_LENGTH, String.valueOf(file.length()));
return ResponseEntity.ok()
.headers(headers)
.contentLength(file.length())
.contentType(MediaType.APPLICATION_OCTET_STREAM)
.body(resource);
}
在这个例子中,我们首先从文件系统中获取了一个文件对象,然后构造了一个文件资源对象,接着构造了 HTTP 响应对象并返回。在构造 HTTP 响应对象时,我们指定了响应头信息和响应正文内容,最后将文件资源对象作为响应正文内容返回。
相关推荐








