Flask - How do I read the raw body in a POST request when the content type is "application/x-www-form-urlencoded" Flask - How do I read the raw body in a POST request when the content type is "application/x-www-form-urlencoded" flask flask

Flask - How do I read the raw body in a POST request when the content type is "application/x-www-form-urlencoded"


You can get the post data via request.form.keys()[0] if content type is application/x-www-form-urlencoded.

request.form is a multidict, whose keys contain the parsed post data.


Use request.get_data() to get the POST data. This works independent of whether the data has content type application/x-www-form-urlencoded or application/octet-stream.


If you want get the JSON when request is 'Content-Type': 'application/x-www-form-urlencoded' you need "force" conversion to json like de code below:

from flask import Flask, requestimport osapp = Flask(__name__)@app.route("/my-endpoint", methods = ['POST'])def myEndpoint():    requestJson = request.get_json(force=True)    //TODO: do something....    return requestJsonif __name__ == "__main__":    port = int(os.environ.get('PORT', 5000))    app.run(host='0.0.0.0', port=port, debug=True, use_reloader=True)