Support Questions

Find answers, ask questions, and share your expertise

[NIFI] Is it possible to make a x-www-form-urlencoded POST request through InvokeHttp

avatar
Explorer

Hi, 

I just started using Nifi and i would like to know if it's possible to perform a POST with a content-type set to `x-www-form-urlencoded`. I need to pass these key/values to my request : 

 

grant_type	refresh_token
client_id	myClientId
client_secret	myClientSecret
refresh_token	myRefreshToken

 

 

4 REPLIES 4

avatar

@azg  Yes, just add the values you want in the processor configuration tab.  Click + to add new key/value pairs.

avatar
Explorer

Thanks for your reply  @steven-matison .
I was trying to use FlowFile Form Data Name in the InvokeHTTP processor

azg_0-1648129645103.png


Someone gave me the right way to resolve my issue and it worked :

https://nifi.apache.org/docs/nifi-docs/components/org.apache.nifi/nifi-standard-nar/1.15.3/org.apach...

When the HTTP Method is POST, dynamic properties with the property name in the form of post:form:<NAME>, where the will be the form data name, will be used to fill out the multipart form parts.

so, post:form:<NAME> could be used for multipart/form-data

and you want application/x-www-form-urlencoded

format of http body should be parm1=Value1&parm2=Value2

before calling invokeHttp use replaceText with approximately this expression in replacement value:

client_secret=${client_secret:urlEncode()}&client_secret=${client_secret:urlEncode()}&...

then use invokehttp with

Send Message Body = true
Content-Type = application/x-www-form-urlencoded

 

avatar
New Contributor

@azg @steven-matison 

I know this is an old post but I wonder if the procedure mentioned here is still relevant?

I can't make it work on NiFi 1.21.0, the parameters on the 'InvokeHttp' processor changed a lot but I don't think this is the problem, can you help me?

avatar

Ofcourse we can help.  Just make a new post.  Try to include as much detail as possible, screenshots, how you have invokeHttp configured, errors, etc.   In your new post tag me using the @ with my username "steven-matison".