【问题标题】:Post file using webclient webflux to API accepting APPLICATION_OCTET_STREAM使用 webclient webflux 将文件发布到接受 APPLICATION_OCTET_STREAM 的 API
【发布时间】:2020-08-27 10:46:24
【问题描述】:

我想使用 Webflux Web 客户端将文件上传到 rest api。接受文件的 API 的内容类型为 APPLICATION_OCTET_STREAM 我如何使用 spring WebClient 做到这一点?

如何将 curl 以下转换为 WebClient 请求?

curl -i -X POST --header "Content-Type:application/octet-stream" --header --data-binary @myfile.pdf  https://some-host/some-url

注意 - 我并不期待非常大的文件

【问题讨论】:

    标签: spring-boot spring-webflux spring-webclient


    【解决方案1】:

    这就是我上传文件的方式

    第一步:将文件读取为字节数组

    bytes = new FileSystemResource((filePath)).getInputStream()
                        .readAllBytes();
    

    第二步:将字节数组传递给bodyValue方法

    webClient.post()
             .uri("Some-uri)
             .contentType(MediaType.APPLICATION_OCTET_STREAM)
             .bodyValue(bytes)
             .retrieve()
             .toBodilessEntity()) 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-09-11
      • 2018-08-10
      • 2019-05-30
      • 1970-01-01
      • 2020-11-04
      • 1970-01-01
      • 1970-01-01
      • 2018-06-11
      相关资源
      最近更新 更多