Skip to main content
 首页 » 编程设计

python之request.json 未检索到 Flask POST

2025年05月04日10freeliver54

我想使用 Flask 创建一个 REST-Api。 作为一个“框架”,我发现了这个 Tutorial这似乎非常适合使用 Flask 创建 REST-API,而且似乎也很容易...

我有这个功能:

@app.route('/api/users', methods=['POST']) 
def new_user(): 
    username = request.json.get('username') 
    password = request.json.get('password') 

但是当我尝试使用 SOAPUI 或 HTTPRequester(在 Firefox 中)发布数据时,我总是收到服务器错误 500

我的应用程序/json 数据如下所示:

{ 
 'username' : 'John', 
 'password' : '1234' 
} 

而且我检查了在两个工具中它都是作为 application/json 发送的。

所以我在 request.json 之前插入了以下内容:

if not request.json: 
    abort(400) 

现在它以代码 400 中止 - 所以它似乎不是一个 json 对象,对吧?

然后我插入了以下几行:

test = request 
print test.data 

然后我在看起来像 JSON 的控制台中检索它:

{ 
    'username' : 'John', 
    'password' : '1234' 
 
    } 

我知道我可以用这个把它变成字典:

dict = ast.literal_eval(test.data) 

但我想使用 Flask 的标准功能。

提前致谢...

请您参考如下方法:

首先检查客户端发送的 HTML header (JS 或其他任何内容)。 Content-Type 应该是 application/json。并使用 request.get_json()。

UPD:您也可以尝试使用 request.get_json(force=True, silent=True)。而且这个方法的flask代码非常简单,你可以通过打断点或者写日志来调试它,以便更好地理解发生了什么。