1、 body
一个http 请求分为两部分,第一部分是首部,也就是编程语言中的headers,另一个部分是body,是请求的数据部分,两部分用\r\n\r\n分割。通常,只有在post请求中才会有body,因为其他请求通常不会向服务器提交数据,但如果get请求里有body数据,http协议也并没有禁止这种行为。
各种web框架都允许编程人员在获取request中的body部分,但是flask却有一点点不同
2、 Flask 请求中的body
你可能会查到使用 request.get_data() 来获取body,但是这并不总是成功,很悲剧
之所以不成功,是因为你在使用 request.get_data() 之前,已经通过其他手段获取了body被解析后的数据,例如 request.files['file'], 这是获得上传文件的方法,如果这一句在get_data()前面,那么你在使用request.get_data() 时就无法获得数据
查看一下request.files 源码, 它会调用 _load_form_data,而这个方法的注释如下
"""Method used internally to retrieve submitted data. After calling
this sets `form` and `files` on the request object to multi dicts
filled with the incoming form data. As a matter of fact the input
stream will be empty af