1

我正在尝试使用 HTTP Post 通过传递以下 Header 和 Body 部分来发布数据,

身体:

  1. 一个具有文件路径的图像 URL。键入“文件”
  2. JSON 格式的元数据。键入“文本”

标题:

内容类型 = 多部分/表单数据

授权=承载5412

这是完整请求的屏幕截图, 在此处输入图像描述

这就是我在 Pentaho 中设置 HTTP Post 任务的方式, 在此处输入图像描述

我在这里使用 REST Client 找到了相关的帖子,但这也没有帮助:Pentaho HTTP Post using JSON

非常感谢您的帮助。

4

2 回答 2

0

我认为问题在于“发布文件”并不意味着在请求中包含文件,而是从该文件中获取整个请求。

我不知道数据在 Post 请求中的外观细节,但粗略的方法应该是:

  1. 通过“将文件内容加载到二进制”操作将文件名字段传递给计算器步骤以获取二进制类型字段(例如:myimage)
  2. Base64(或其他)使用 Javascript 步骤对数据进行编码,如下所示:

var encString = new Packages.java.lang.String(Packages.org.apache.commons.codec.binary.Base64.encodeBase64(myimage));

  1. 将其包装在一些指示编码的内容类型字符串中
  2. 在您的请求中包含该字段。
于 2017-02-16T12:35:33.513 回答
0

https://jira.pentaho.com/browse/PDI-14743上有一个补丁可以在使用 Rest Client 时启用正确的二进制传输而不是字符串。

于 2018-05-01T00:29:45.690 回答