karate

How to pass x-www-form-urlencoded - grant_type=client_credentials in Karate


How to pass x-www-form-urlencoded - grant_type=client_credentials in Karate.

Hi,

I am trying to pass value grant_type=client_credentials in the form of x-www-form-urlencoded in karate which i was doing with postman.

i know karate will default set the content type as x-www-form-urlencoded, but can u help what i am doing wrong here?

Karate script:

enter code here
  Given url 'http://env/singlesignon/v1/access/token'
 And header Authorization = 'Basic c2JsLWFwaWdlZS1lemJvYi1jbGllbnQ6c2JsLWFwaWdlZGllbnQ='
 And header X-Correlation-Id = 'alibgefh'

 And header X-Consumer = 'APIGEE'

 And form field grant_type = 'client_credentials'

 When method post

 Then status 200

Request headers:

enter code here
 Authorization: Basic c2JsLWFwaWdlZS1lemJvYi1jbGllbnQ6c2JsLWFwaWdlZGllbnQ=
 Connection: Keep-Alive
 Content-Length: 29
 Content-Type: application/x-www-form-urlencoded; charset=UTF-8
 X-Consumer: APIGEE
 X-Correlation-Id: alibgefh

Response:

{"error_description":"Wrong Content Type","error":"Bad Request" }


Solution

  • Maybe your server doesn't like the charset=UTF-8 part (which is a bug on your server). Try adding this line before:

    * configure charset = null
    

    Else there is insufficient data in your question. Work with someone in your server-side team if possible. You can try to edit your question with a working cURL command, that might help.