自定义提交无效JSON数据时的错误响应

2024-06-26 05:44:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在向我的Flask应用程序发送一个只包含{的无效JSON,该应用程序验证JSON并返回其结果

通过cURL提交命令,我得到了以下错误

curl -i -X POST -H "Content-Type:application/json" -d @/Users/xxxx/yyyy/test.json http://0.0.0.0:5000/validate
HTTP/1.0 400 BAD REQUEST
Content-Type: text/html
Content-Length: 221
Server: Werkzeug/0.16.0 Python/3.7.3
Date: Wed, 05 Aug 2020 11:09:48 GMT

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<title>400 Bad Request</title>
<h1>Bad Request</h1>
<p>Failed to decode JSON object: Expecting property name enclosed in double quotes: line 1 column 2 (char 1)</p>

通常,如果数据是有效的JSON,那么服务器会做出响应,但在这种情况下,应用程序似乎没有做出任何反应

我的问题是

  • 究竟是什么返回此消息
  • 是否可以自定义响应?我想特别定制这封信

Tags: 命令json应用程序flasktitlerequesthtmltype
1条回答
网友
1楼 · 发布于 2024-06-26 05:44:59

要自定义提交无效json对象时返回的错误,可以执行以下操作:

from flask import jsonify, request
from werkzeug.wrappers import BaseRequest
[..]

@app.route('/validate')
def validate():
    if request.method == 'POST':

        # Assert that the payload is a valid JSON
        try:
            data = request.json
        except BadRequest, e:
            return jsonify(code=e.code,
                           name=e.name,
                           description=e.description), e.code
            # you can customize "description" message with your own like "Payload is not a valide JSON"

        # the payload is valid JSON
        # put your logic here ..


要了解有关如何自定义应用程序错误的更多信息,请参阅:

相关问题 更多 >