Http作为Nifi的来源 - 没有按预期工作

时间:2017-06-28 09:31:55

标签: apache-nifi

我正在尝试通过postman发送带有POST请求的文件,并且该文件需要保存在本地FS中。我尝试了所有4个选项GetHttp,InvokeHttp,ListenHttp,HandleHttpRequest。似乎GetHttp,InvokeHttp需要在发送POST请求的最后运行web服务,这不适合我们的案例用例。我尝试使用ListenHttp,但我无法更改它指向localhost的默认主机名选项。有办法改变吗?

我也尝试使用HandleHttpRequest,似乎接收请求的客户端应该发送确认以结束发送方的连接,nifi用户指南不提供如何示例使用或配置。有人能为我提供一个我提到的用例的例子。

1 个答案:

答案 0 :(得分:1)

ListenHttp启动一个嵌入式Jetty服务器,并且在创建连接器时没有指定主机名,根据Jetty文档说它应该绑定到所有可用的网络接口:

  

"此连接器绑定的网络接口为IP地址或   主机名。如果为null或0.0.0.0,则绑定到所有接口。"

要使用HandleHttpRequest,您还需要使用HandleHttpResponse ...您基本上会收到来自客户端的请求,该请求将变为流文件,通过您想要执行的任何处理传递流文件,然后将其发送到HandleHttpResponse以进行回复回到客户端。这里有一个模板,展示了如何使用它:

https://cwiki.apache.org/confluence/download/attachments/57904847/Hello_NiFi_Web_Service.xml?version=1&modificationDate=1449369797000&api=v2