在NiFi处理器“ InvokeHTTP”中,您在哪里编写POST请求的正文?

时间:2018-12-18 11:02:02

标签: apache-nifi

在发布有关Apache NiFi InvokeHTTP的问题之前,我已经遍历了所有其他问题及其答案,但是我仍然不确定应该获得的最佳流程。我的情况如下:

1)从Apache Kakfa,我获得了原始元数据。

2)使用EvaluateJSONPath得到我想要的属性。

3)使用RouteOnAttribute,我根据从上面的第2步获得的属性值创建了3条路由。

4)现在,基于属性值,我想决定应该进行GET还是POST还是Delete。

5)我的问题是在哪里/如何设置POST消息? GET消息?删除邮件正文?

6)我可以在InvokeHTTP提供的配置部分中设置URL。但是消息正文我不知道那是哪个属性?或使用ReplaceText的流文件中?

我在某处读到,在将Restful POST HTTP请求转移到InvokeHTTP之前,您必须具有另一个处理器才能更改流文件的内容。

参考:Configuring HTTP POST request from Nifi

请帮助。谢谢。 问候, 是的

2 个答案:

答案 0 :(得分:4)

对于POST,正文将是流文件内容中的任何内容。

GET和DELETE通常没有正文,因为该信息通常在URL或查询参数中提供。

答案 1 :(得分:1)

在Bryan解释的基础上,POST将把FlowFile内容用作消息正文,因此,如果您有其他一些要擦除/转换为某些内容然后作为消息正文发送的数据,则可以利用以下内容处理器:

  • ExtractText从现有FlowFile内容中读取数据
  • ReplaceText清除FlowFile的现有内容,并将其替换为其他内容

要设置REST调用的标头,InvokeHTTP具有属性Attributes to Send属性,该属性带有一个正则表达式,该正则表达式将针对传入的FlowFiles属性进行扫描,并且将匹配的任何属性作为HTTP发送并发送标头。

要将新属性添加到现有FlowFile中,可以使用UpdateAttribute