spring-boot - 使用 webclient webflux 将文件发布到接受 APPLICATION_OCTET_STREAM 的 API
问题描述
我想使用 Webflux Web 客户端将文件上传到 rest api。接受文件的 API 具有内容类型,因为APPLICATION_OCTET_STREAM
我如何使用 spring 来做到这一点WebClient
?
我如何在 curl 以下转换为WebClient
request ?
curl -i -X POST --header "Content-Type:application/octet-stream" --header --data-binary @myfile.pdf https://some-host/some-url
注意- 我不期待非常大的文件
解决方案
这就是我能够上传文件的方式
第 1 步 :将文件读取为字节数组
bytes = new FileSystemResource((filePath)).getInputStream()
.readAllBytes();
第 2 步 :将字节数组传递给bodyValue
方法
webClient.post()
.uri("Some-uri)
.contentType(MediaType.APPLICATION_OCTET_STREAM)
.bodyValue(bytes)
.retrieve()
.toBodilessEntity())
推荐阅读
- nginx - 如何确定 GCP 负载平衡器使用的 IP 范围
- python - 在 Python 中为提取的单词创建表格 Yes/No 表
- node.js - 在猫鼬中创建新文档时可以添加新属性吗?
- reactjs - TypeError: this.props.loginActionCreater 不是 react-redux 中的函数
- css - Angular App 中的 Openlayers Fullscreen 在 Firefox 中有效,但在 Chrome 中无效
- python - 如何解决 ModuleNotFoundError:没有名为“_pywrap_tensorflow_internal”的模块?
- angular - 调整 Angular 5 代码以显示在手机上
- mysql - 基于日期的最后连续插入记录的计数
- r - GGP绘制在同一点结束的多条线
- amazon-web-services - 如何在 AWS ECS 中扩展任务/容器