如何解决Spring WebFlux 相当于 getFirstHeader
使用 apache http 客户端,在下载文件时我可以使用
response.getFirstHeader("Content-disposition").getValue();
现在我切换到 webflux 来下载如下文件:
final Flux<DataBuffer> dataBufferFlux = client.get()
.accept(MediaType.APPLICATION_OCTET_STREAM)
.retrieve()
.bodyToFlux(DataBuffer.class);
final Path path = FileSystems.getDefault().getPath("/file/path/name.pdf");
DataBufferUtils
.write(dataBufferFlux,path,StandardOpenoption.CREATE)
.block();
问题:如何在 webflux 中获取与内容/标题相关的选项?
更新
我很擅长:
ClientResponse response = client.get().uri(uri)
.accept(MediaType.APPLICATION_OCTET_STREAM)
.headers(headers -> headers.setBasicAuth("admin","admin"))
.exchange()
.block();
它给了我我想要的 - System.out.println("File response asHttpHeaders :: "+response.headers().asHttpHeaders().getContentdisposition());
输出:
File response asHttpHeaders :: attachment; filename*=UTF-8''TestPdf.pdf
但我不想让它看起来丑陋。我想知道是否可以在上面的原始代码(使用 dataBufferFlux)中获取此信息。
应用:
我有一个应用程序,我需要使用来自另一个应用程序的 rest API 在暂存区批量下载文件(每周数百万个文件),该应用程序不是完全响应式的。所以整个想法是在我的第一个代码 (dataBufferFlux) 中拦截头信息,以便我可以即时设置文件名和内容类型。
简单(重构)问题:
有没有办法在将文件写入暂存区(NAS 驱动器)时检索头信息以获取文件的文件名和内容类型。
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。