How to pass payload via JSON file for curl? -


i can create place via curl executing following command:

$ curl -vx post https://server/api/v1/places.json -d "   auth_token=b8dsbz4hexmskqua6qhn& \   place[name]=fuelstation central& \   place[city]=grossbeeren& \   place[address]=buschweg 1& \   place[latitude]=52.3601& \   place[longitude]=13.3332& \   place[washing]=true& \   place[founded_at_year]=2000& \   place[products][]=diesel& \   place[products][]=benzin \ " 

the server returns http/1.1 201 created.
want store payload in json file looks this:

// testplace.json {   "auth_token" : "b8dsbz4hexmskqua6qhn",   "name" : "fuelstation central",   "city" : "grossbeeren",   "address" : "buschweg 1",   "latitude" : 52.3601,   "longitude" : 13.3332,   "washing" : true,   "founded_at_year" : 2000,   "products" : ["diesel","benzin"] } 

so modify command executed this:

$ curl -vx post http://server/api/v1/places.json -d @testplace.json 

this fails returning http/1.1 401 unauthorized. why?

curl sends post requests default content type of application/x-www-form-urlencoded. if want send json request, have specify correct content type header:

$ curl -vx post http://server/api/v1/places.json -d @testplace.json \ --header "content-type: application/json" 

but work if server accepts json input. .json @ end of url may indicate output json, doesn't mean handle json input. api documentation should give hint wheather or not.

the reason why 401 , not other error because server can't extract auth_token request.


Comments

Popular posts from this blog

html - How to style widget with post count different than without post count -

How to remove text and logo OR add Overflow on Android ActionBar using AppCompat on API 8? -

javascript - storing input from prompt in array and displaying the array -