【问题标题】:How to set Request and response "Content-Type" to "application/json;charset=UTF-8"?如何将请求和响应“Content-Type”设置为“application/json;charset=UTF-8”?
【发布时间】:2022-03-28 19:28:42
【问题描述】:

在 flask restful 中,基于开放 API 规范,我需要确保请求的标头 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

【问题讨论】:

  • 你想确保 JSON 字符编码是用 UTF-8 完成的吗?或者您只是想确保requestresponseContent-Type 设置为application/json;charset=UTF-8
  • 我想确保 JSON 字符编码是使用 UTF-8 完成的,而且我必须确保响应在 Flask-Restful 中将 Content-Type 设置为 application/json;charset=UTF-8

标签: python json request httpresponse flask-restful


【解决方案1】:

您可以使用 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

【讨论】:

    【解决方案2】:

    您可以像这样将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 jsonify(data) - 不搞乱response.headers

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-12-19
      • 2014-10-06
      • 2023-04-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多