Flask API failing to decode JSON data. Error: "message": "Failed to decode JSON object: Expecting value: line 1 column 1 (char 0)"
10,409
Solution 1
You need to select raw -> JSON (application/json) in Postman like this:
When it comes to your cURL request, answer explains that windows's command line lacks support of strings with single quotes, so use:
curl -i -H "Content-Type: application/json" -X POST -d "{\"username\":\"abc\", \"password\":\"abc\"}" 127.0.0.1:5000
instead:
curl -H "Content-Type: application/json" -X POST -d '{'username':"abc",'password':"abc"}' http://localhost:5000
\
escapes "
character.
Solution 2
You also need to have the Content-Length header enabled.
Author by
FProlog
Updated on June 14, 2022Comments
-
FProlog almost 2 years
I'm setting up a simple rest api using flask and flask-restful. Right now all I'm trying to do is create a post request with some Json data, and then return it just to see if it works. I always get the same error
"message": "Failed to decode JSON object: Expecting value: line 1 column 1 (char 0)"
Below is my code
from flask import Flask, jsonify, request from flask_restful import Resource, Api app = Flask(__name__) api = Api(app) class Tester(Resource): def get(self): return {'about': 'Hello World'} def post(self): data_json = request.get_json(force=True) return {'you sent': data_json} api.add_resource(Tester, '/') if __name__ == '__main__': app.run(debug=True)
The curl request I am making to test this is below, I've also tried making request using postman
curl -H "Content-Type: application/json" -X POST -d '{'username':"abc",'password':"abc"}' http://localhost:5000
-
DhoTjai about 5 yearsSingle quote in your payload --> '{'.