如何在nifi中使用invoke HTTP执行GET请求?

时间:2019-01-03 14:59:25

标签: http curl get couchbase apache-nifi

我需要执行从nifi到沙发床的获取请求。 curl命令为:

int Query::Blob(int index, const void* blob, int blob_size, void (*memory_management)(void *)){
   return sqlite3_bind_blob(stmt, index, blobl, blob_size, memory_management);
}

我尝试使用InvokeHttp和ExecuteStreamCommand,但它一直返回错误(状态码400)。完整的错误消息是:

  

{“ requestID”:“ bff62c0b-36fd-401d-bca0-0959e0944323”,“错误”:   [{“ code”:1050,“ msg”:“无声明或预设值”}],“ status”:   “致命”,“度量”:{“ elapsedTime”:“ 113.31µs”,“ executionTime”:   “ 74.321µs”,“ resultCount”:0,“ resultSize”:0,“ errorCount”:1

重要的是,我希望http请求将由传入的流文件触发。我尝试以各种方式使用处理器,但是没有一种可以使用。 当我从nifi服务器运行命令时,它运行正常。

感谢您的帮助

2 个答案:

答案 0 :(得分:3)

curl实用程序的-d参数强制执行HTTP POST命令

application/x-www-form-urlencoded哑剧类型。

因此,在nifi InvokeHTTP中选择以下参数

HTTP Method                   = POST
Remote URL                    = <your url here>
Basic Authentication Username = <username>
Basic Authentication Password = <password>
Content-Type                  = application/x-www-form-urlencoded

并且流文件的正文应为

statement=select item.Date from bucket unnest bucket as item

答案 1 :(得分:1)

我不知道nifi,但是基于错误消息,请求的“ statement =“部分未包含在内,或者您未将请求作为POST命令发送。