I need to send an HTTP POST or PUT request. The request provides a 1 line json response when sent correctly. I want to capture the response and send it as a get request. I can use this curl command to successfully send the request:
curl http://10.1.10.13/api/tiscale/v1/upload -F file=@/somepath/somefilename
I tried various scenarios with InvokeHttp and HttpPost, but the response comes back as either a 400 BAD REQUEST or 500 SERVER ERROR.
Here is the request I tried last from the app log file.
2018-02-27 15:06:00,536 DEBUG [Timer-Driven Process Thread-1] o.a.nifi.processors.standard.InvokeHTTP InvokeHTTP[id=d25f484f-0161-1000-d92d-c1fe227a25a3] Request to remote service: http://10.1.10.13/api/tiscale/v1/upload date: Tue, 27 Feb 2018 20:06:00 GMT file: =@"/opt/nifi-1.5.0/testfiles/CyberAwarenessChallengeCertificate.pdf"
This request produced a 400 response.
It might not be ideal from a performance perspective, but you could use ExecuteProcess to run a shell script or python script makes the call. I know it doesn't directly address the issue with the processors in question but it might be a viable work around.