Home > database >  flask - empty form data when sending request from file with netcat
flask - empty form data when sending request from file with netcat

Time:08-14

I have a remote server running a simple flask server on it. I use this server for debugging purposes of my MCU cellular interface.

from flask import Flask
from flask import request

app = Flask(__name__)

@app.route("/b61d39e9-94ca-49e2-96ba-bdc3325a8aeb", methods = ["POST"])
def root():
    print(request.headers)
    if(request.is_json):
        content = request.get_json()
        print (content)

    print(request.form.get("uuid"))

    return "OK"

if(__name__ == "__main__"):
    app.run(host = "0.0.0.0", port = 65432, debug = True)

And I send this request using netcat and the command nc ... 65432 < Request.txt

POST /b61d39e9-94ca-49e2-96ba-bdc3325a8aeb HTTP/1.1
Host: ESP32-DevKit VE
Content-Type: multipart/form-data;boundary="data"

--data
Content-Disposition: form-data; name="uuid"

ff0dbd36-dc36-4df5-8196-324adf76ed3f
--data--

netcat is reporting error 200, so everything was fine, but the flask web server doesn´t output the value of the field uuid.

... - - [13/Aug/2022 09:21:21] "POST /b61d39e9-94ca-49e2-96ba-bdc3325a8aeb HTTP/1.1" 200 -
Host: ESP32-DevKit VE
Content-Type: multipart/form-data;boundary="data"


None

I can not figure out what kind of problem is here.

CodePudding user response:

It appears you're missing Content-Length header. I was able to get uuid using your python code above and this request:

POST /b61d39e9-94ca-49e2-96ba-bdc3325a8aeb HTTP/1.1
Content-Type: multipart/form-data; boundary=--------------------------data
Content-Length: 135

----------------------------data
Content-Disposition: form-data; name="uuid"

ff0dbd36-dc36-4df5-8196-324adf76ed3f
----------------------------data--
  • Related