Spring boot webflux Webclient未设置内容范围标头
使用flux Webclient,我试图将从另一个Webclient下载的Spring boot webflux Webclient未设置内容范围标头,spring-boot,spring-webflux,Spring Boot,Spring Webflux,使用flux Webclient,我试图将从另一个Webclient下载的org.springframework.core.io.buffer.DataBuffer文件流式传输到一个新的端点 此端点(我不控制)需要在上载时设置两个标题:Content Length和Content Range 如果我按照下面的硬编码测试手动设置它们,一切都会顺利进行。我不确定在上传Flux databuffer时从哪里开始动态设置这些 public Mono<ResourceResponse>
org.springframework.core.io.buffer.DataBuffer
文件流式传输到一个新的端点
此端点(我不控制)需要在上载时设置两个标题:Content Length
和Content Range
如果我按照下面的硬编码测试手动设置它们,一切都会顺利进行。我不确定在上传Flux databuffer时从哪里开始动态设置这些
public Mono<ResourceResponse>uploadFile(URI destination, Flux<DataBuffer> inputFile){
WebClient webClient = WebClient.create();
return webClient.put()
.uri(destination)
// .header(HttpHeaders.CONTENT_LENGTH, "12")
// .header(HttpHeaders.CONTENT_RANGE, "bytes 0-11/12")
.body(BodyInserters.fromDataBuffers(inputFile))
.retrieve()
.bodyToMono(ResourceResponse.class);
}
公共单上传文件(URI目标,通量输入文件){
WebClient WebClient=WebClient.create();
返回webClient.put()
.uri(目的地)
//.header(HttpHeaders.CONTENT_长度,“12”)
//.header(HttpHeaders.CONTENT_范围,“字节0-11/12”)
.body(BodyInserters.fromDataBuffers(inputFile))
.retrieve()
.bodyToMono(ResourceResponse.class);
}
我应该在客户端上做更多的工作来提取这些头吗
public Flux<DataBuffer> downloadFile(URI uri) {
return botClient.get().uri(uri)
.accept(MediaType.APPLICATION_OCTET_STREAM)
.retrieve().bodyToFlux(DataBuffer.class);
}
公共流量下载文件(URI){
返回botClient.get().uri(uri)
.accept(MediaType.APPLICATION\u八位字节\u流)
.retrieve().bodyToFlux(DataBuffer.class);
}