Reputation: 642
I have a 3rd party REST, which I am successfully able to call like this using CURL (shell). This API return JSON. I tried calling same API, by changing content type to application/x-www-form-urlencoded
but it doesn't work. I think I am forced to use content-type: multipart/form-data
curl --request POST --url https://************************* --header 'Authorization: Bearer ********' --header 'content-type: multipart/form-data; ' --form cluster_id=0717-035521-puny598 --form start_time=1534357800000 --form end_time=1534444199999 --form order=ASC --form limit=500
Now I want to call same API using InvokeHTTP processor (NiFi). So I configured it as follows. But I am not able to do a successful call. (it is not a proxy issue).
Following is how I am creating POST body (by FF)
I have tried replacing "enter" by \r\n etc, or changing body as name1=val1&name2=val2&....
etc. nothing worked.
This is the response I am getting.
[
I am able to run CURL (shell, from same server where Nifi is running). Also I am able to access url via postman.
[
Upvotes: 2
Views: 5001
Reputation: 642
Finally, it worked. The flow is somewhat like this:
GenerateFlowFile -> UpdateAttribute -> AttributesToJSON -> InvokeHTTP
The only change, I made to InvokeHTTP reverted content-type
back to ${mime.type}
.
Upvotes: 0
Reputation: 1
I was struggling with this for a few hours. I've got a backend API that has
ResponseEntity<ByteArrayResource> post (@RequestPart("file") MultipartFile file)
and a NiFi processor that sends XLSX data to this. I was getting the same issue... The key for me were the bottom two properties:
FlowFile Form Data Name -> file (this is the name of the variable in the API call)
Set Flowfile Form Data File Name -> true
Upvotes: 0