7

How can I convert the following cURL command to a Postman rest call?

curl -X POST abc.com/input.import 
        -H 'content-type: application/x-www-form-urlencoded'
        --data-urlencode "apiKey=123-456"
        --data-urlencode "secret=12/her"
        --data-urlencode "userKey=ApUR"
        --data-urlencode "email=fakeImportedAccount@example.com"
        --data-urlencode "profile={'firstName':'John','lastName':'Kira'}" 

I tried the following:

URL: (POST) abc.com/input.import

Header: Content-Type:application/json

Body:

{
    "apiKey":"123-456",
    "userKey":"ApUR",
    "secret":"12/her",
    "email":"fakeImportedAccount@example.com",
    "profile": {
        "firstName":"John",
        "lastName":"Kira"
    }
}

EDIT: Raw-body format in Postman is required. Import creates the request in "x-www-form-urlencoded" form

djm.im
  • 2,652
  • 3
  • 24
  • 40
Sammy
  • 717
  • 2
  • 10
  • 25

2 Answers2

14

The content-type is not application/json, it's application/x-www-form-urlencoded. What you need to do is in the body tab, select application/x-www-form-urlencoded. The content-type header will automatically be set for you. The just start adding the key/value pairs (the --data-urlencoded arguments)

enter image description here

UPDATE

Unrelated, but for those looking for a way to post JSON (which is very common), you would use the "raw" radio button and then you would manually type in the JSON to the window they provide. Also you would set the Content-Type header to application/json.

Paul Samsotha
  • 188,774
  • 31
  • 430
  • 651
-1

I finally found: I have to url-encode every key value and send it with Content-Type:application/x-www-form-urlencoded.

Header:application/x-www-form-urlencoded Body:

{
  "apiKey":"123-456",
  "userKey":"ApUR",
  "secret":"12%2Fher",
  "email":"fakeImportedAccount%40example.com",
  "profile":{
     "firstName":"John",
     "lastName":"Kira"
  }
}
Sammy
  • 717
  • 2
  • 10
  • 25