在 NiFi 处理器“InvokeHTTP”中,你在哪里写 POST 请求的主体?

Yes*_*KAD 7 apache-nifi

在发布关于 Apache NiFi InvokeHTTP 的这个问题之前,我已经完成了所有其他问题及其答案,但我仍然不确定我应该拥有的最佳流程。我的情况如下:

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

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

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

4) 现在根据属性值,我想决定是否应该使用 GET、POST 或 Delete。

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

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

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

参考:配置来自 Nifi 的 HTTP POST 请求

请帮忙。谢谢。问候, Yeshwant

Bry*_*nde 7

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

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


Siv*_*man 7

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

  • ExtractText 从现有 FlowFile 内容中读取数据
  • ReplaceText 删除 FlowFile 的现有内容并将其替换为不同的内容

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

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