如何将请求和响应"Content-Type"设置为"application/json;charset=UTF-8"?

How to set Request and response "Content-Type" to "application/json;charset=UTF-8"?

在 flask restful 中,基于开放的 API 规范,我需要确保请求 header Content-Type 设置为 application/json;charset=UTF-8 这意味着输入请求是 JSON 并以 UTF-8 编码。

我可以使用以下代码检查 JSON:

if request.is_json:
    do some thing

但是,我如何确保请求和响应是 UTF-8 编码并且输出也应该是 application/json;charset=UTF-8

您可以使用 jsonify 创建响应

from flask import Flask, jsonify
...

然后你可以改变一些http属性

response = jsonify({"status": "ok" })
response.status_code = 200
response.headers["Content-Type"] = "application/json; charset=utf-8"
return response

您可以像这样将 JSONIFY_MIMETYPE 配置设置为 "application/json; charset=utf-8"

from flask import Flask

app = Flask(__name__)
app.config["JSON_AS_ASCII"] = False
app.config["JSONIFY_MIMETYPE"] = "application/json; charset=utf-8"

所以下次,你 return 这样的数据 return jsonify(data) - 不要弄乱 response.headers