Как использовать invoke http для выполнения GET-запроса в nifi? - PullRequest
0 голосов
/ 03 января 2019

Мне нужно выполнить запрос get от nifi на couchbase.Команда curl:

curl http://HOST:PORT/query/service -d "statement=select item.Date from bucket unnest bucket as item" -u USER:PASSWORD

Я пытался использовать InvokeHttp и ExecuteStreamCommand, но он продолжает возвращать ошибки (код состояния 400).Полное сообщение об ошибке:

{"requestID": "bff62c0b-36fd-401d-bca0-0959e0944323", "errors": [{"code": 1050, "msg": "Noоператор или подготовленное значение "}]," status ":" fatal "," metrics ": {" elapsedTime ":" 113.31µs "," executeTime ":" 74.321µs "," resultCount ": 0," resultSize ": 0, "errorCount": 1

Важно сказать, что я предпочитаю, чтобы http-запрос запускался входящим потоковым файлом.Я пытался использовать процессоры по-разному, но ни один из них не работал.Когда я запускаю команду с сервера nifi, она работает нормально.

Спасибо за помощь

Ответы [ 2 ]

0 голосов
/ 03 января 2019

параметр -d утилиты curl заставляет команды HTTP POST

и application/x-www-form-urlencoded mime-type.

так, в 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
0 голосов
/ 03 января 2019

Я не знаю nifi, но, исходя из сообщения об ошибке, часть запроса «Statement =» не включена или вы не отправляете запрос в виде команды POST.

...