在发布有关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
请帮助。谢谢。 问候, 是的
答案 0 :(得分:4)
对于POST,正文将是流文件内容中的任何内容。
GET和DELETE通常没有正文,因为该信息通常在URL或查询参数中提供。
答案 1 :(得分:1)
在Bryan解释的基础上,POST将把FlowFile内容用作消息正文,因此,如果您有其他一些要擦除/转换为某些内容然后作为消息正文发送的数据,则可以利用以下内容处理器:
ExtractText
从现有FlowFile内容中读取数据ReplaceText
清除FlowFile的现有内容,并将其替换为其他内容要设置REST调用的标头,InvokeHTTP
具有属性Attributes to Send
属性,该属性带有一个正则表达式,该正则表达式将针对传入的FlowFiles属性进行扫描,并且将匹配的任何属性作为HTTP发送并发送标头。
要将新属性添加到现有FlowFile中,可以使用UpdateAttribute