小编lea*_*dev的帖子

Spring Boot 通过 WebClient 将文件从一个 api 传递/上传到另一个 api

我有两个 Spring Boot API,我首先将多部分文件从邮递员发送到一个 Spring Boot 应用程序,然后从那里发送到第二个 Spring Boot 应用程序,如下所示

邮递员(文件)-> API 1 -> API2

当文件从邮递员上传到 API1 时,一切都很顺利,但是当我将这个多部分文件从 API1 发送到 API2 时,一切都会崩溃。我正在使用 WebClient 将文件从 API1 发送到 API2。下面是相关代码以及我在两个 API 的控制台中看到的错误。

API1 中的代码,我使用 WebClient 使用预期文件调用 API2

public List<DTO> importPrograms(String urlPath, MultipartFile file){
        try {
            MultipartBodyBuilder builder = new MultipartBodyBuilder();
            builder.part("file", file);
            // also tried 
            //builder.part("file", new ByteArrayResource(file.getBytes()));
            Flux<ProductVersionDTO> flux = webClient.post()
                    .uri(urlPath)
                    .contentType(MediaType.MULTIPART_FORM_DATA)
                    .header(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON.toString())
                    .accept(MediaType.APPLICATION_JSON)
                    .bodyValue(builder.build()) // also tried body(BodyInserters.fromMultipartData(builder.build()))
                    .retrieve()
                    .bodyToFlux(DTO.class);
            return flux.collectList().block();
        } catch(Exception e) {
            LOG.error(e.getMessage());
            return null; …
Run Code Online (Sandbox Code Playgroud)

webclient file-upload multipartform-data spring-boot multipartfile

4
推荐指数
1
解决办法
6071
查看次数