如何使用Flask正确解码文本内容POST



在处理包含";text/plain";Flask的数据?

测试应用:

from flask import Flask
from flask import request
app = Flask(__name__)
@app.route("/put-text", method=['POST'])
def hello_world():
print("data", request.data)
return {}

示例请求

import requests
url = 'http://127.0.0.1:5000/put-text'
data = 'The quick brown fox jumped over the lazy dog."
headers = {
"Content-Type:":"text/plain",
}
res = requests.post(url, data=data, headers=headers)

这样一来,request.data就是字节,我可以相对容易地decode,但我如何使此代码健壮,以支持unicode或不同的文本编码?

根据Flask文档,request.get_data(as_text=True)可能会做你想要的事情:

@app.route("/put-text", method=['POST'])
def hello_world():
text = request.get_data(as_text=True)
# do something with the `text`...
return {}

据推测,Flask将按照客户端在相应标头中指定的正确编码对文本进行解码。如果客户端指定了正确的编码,当然。。。

最新更新