将 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 将其上传到文件服务器

在dataweave 2.0 Mule4中将XML CDATA格式转换为JSON格式

Mule:有没有将 XML 转换为 JSON 的简单方法

Mule PlaceHolder 文档有误?

如何在 Mule 4 中通过 ActiveMQ 传递属性

如何以json的格式发送到前端