Support Questions

Find answers, ask questions, and share your expertise
Celebrating as our community reaches 100,000 members! Thank you!

ExecuteStreamCommand processor. set execute comand curl -X PUT to transfer json data. trouble with autodelete double qoutes by processor


I want to transfer json using curl to ExecuteStreamCommand processor. Problem with deleting double quotes.
The ExecuteStreamCommand processor automatically removes double quotes when generating a string for an executable command.

there is an ExecuteStreamCommand processor
Command Path ---> curl
Command Arguments ---->
-X PUT -vs -H 'Content-Type: application/json' --data '{"details":{"Produce":"Gigabyte","l(sm) ":0.0,"manufacturerCountry"}}'

This processor during the formation of the general command curl -X PUT dev...etc. automatically removes double quotes from the command text and sends the command without double quotes. ——->
curl -X PUT -vs -H 'Content-Type: application/json' --data '{details:{

If you escape double quotes
Command Arguments ---->
-X PUT -vs -H 'Content-Type: application/json' --data '{\"details\":{\"Produce\":\"Gigabyte\" ,\"l(sm)\":0.0,\"manufacturerCountry\"}}'
then nifi does not remove the double quotes, but passes the string to the command also with a screen before the double quotes. doesn't roll either.

I found advice to somehow create my own rule / strategy for passing arguments to the command, and there you need to specify that double quotes are not removed. but nowhere did I find an example or a hint. in the documentation of the processor itself, a general description, but there are no examples of creation.


Super Mentor


Rather than using ExecuteStreamCommand processor to execute Curl, have you tried using the invokeHTTP processor instead for your PUT operation?

If you found that the provided solution(s) assisted you with your query, please take a moment to login and click Accept as Solution below each response that helped.

Thank you,