将 JSON 格式的文件发送到 Mule 3.8 中的 REST 服务
Posted
技术标签:
【中文标题】将 JSON 格式的文件发送到 Mule 3.8 中的 REST 服务【英文标题】:Send a file in JSON to REST service in Mule 3.8 【发布时间】:2017-06-28 08:58:57 【问题描述】:我正在使用 Mule 3.8,需要将文件发送到 json (base64) 中的目标 REST 服务。
我正在尝试寻找选项,但其中任何一个都不起作用。我的有效负载中有一个文件,否则我可以从文件中读取它。
这是我的方法。使用脚本在 Dataweave 转换中生成 JSON 并添加文件内容(转换为 base64)。这将为我们提供所需格式的 JSON。但是我们也需要在 JSON 中添加文件内容(示例 JSON 如下)。我们可以在payload中使用#[message.inboundAttachments['file'].dataSource.content]
获取文件内容,但不知道如何将其传递给dataweave。
> "form_data": "name": 'xyz' , "files": [ "fileid": "id1",
> "filedata": "base64 file data" ]
【问题讨论】:
不清楚你要求什么。您将数据作为字段文件数据值,这是一条数据。像 BLOB 或类似的东西。 Dataweave 将其作为一个整体进行操作。您的目标是从该 BLOB 中提取数据吗?然后从base64转换,定义元数据并使用它。这是流程中的 3 个步骤。是你想要的吗? 【参考方案1】:(代表 OP 发布解决方案).
我使用自定义 java 转换器并从 MuleMessage 对象中获取所有数据。创建 json 值并将其设置回有效负载中。
【讨论】:
以上是关于将 JSON 格式的文件发送到 Mule 3.8 中的 REST 服务的主要内容,如果未能解决你的问题,请参考以下文章
如何在 HTTP 请求中发送文件并通过 Mule 中的 FTP 将其上传到文件服务器