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

Gal*_*hak 1 curl get http couchbase apache-nifi

我需要执行从 nifi 到 couchbase 的获取请求。curl 命令是:

curl http://HOST:PORT/query/service -d "statement=select item.Date from bucket unnest bucket as item" -u USER:PASSWORD
Run Code Online (Sandbox Code Playgroud)

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

{ "requestID": "bff62c0b-36fd-401d-bca0-0959e0944323", "errors": [{"code":1050,"msg":"No statement or Prepared value"}], "status": "fatal" , "metrics": {"elapsedTime": "113.31µs","executionTime": "74.321µs","re​​sultCount": 0,"resultSize": 0,"errorCount": 1

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

谢谢您的帮助

dag*_*ett 5

-dcurl 实用程序的参数强制 HTTPPOST命令

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
Run Code Online (Sandbox Code Playgroud)

流文件的主体应该是

statement=select item.Date from bucket unnest bucket as item
Run Code Online (Sandbox Code Playgroud)

  • 非常感谢,问题出在内容类型上! (2认同)