Pentaho HTTP发布multipart / form-data

时间:2017-02-13 22:25:25

标签: json http-post pentaho multipartform-data pentaho-data-integration

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

身体:

  1. 具有文件路径的一个图像URL。输入'文件'
  2. JSON格式的元数据。输入'文字'
  3. 接头:

    Content-type = multipart / form-data

    授权= Bearer 5412

    以下是完整请求的屏幕截图, enter image description here

    这就是我在Pentaho中设置HTTP Post任务的方法, enter image description here

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

    非常感谢您的帮助。

3 个答案:

答案 0 :(得分:0)

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

我不知道数据在Post请求中应该如何看待的具体细节,但粗略的方法应该是:

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

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

    1. 将其包装在一些指示编码的内容类型字符串中
    2. 在您的请求中包含该字段。

答案 1 :(得分:0)

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

答案 2 :(得分:-1)

找不到任何带有HTTP控件的解决方案来实现上述功能。使用用户定义的java类控件并编写一个自定义java类以使其工作。

谢谢, 尼勒什