Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring boot webflux Webclient未设置内容范围标头_Spring Boot_Spring Webflux - Fatal编程技术网

Spring boot webflux 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>

使用flux Webclient,我试图将从另一个Webclient下载的
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); }