如何在Flask/连接中获取原始请求有效负载?

2024-10-04 09:21:24 发布

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

我需要在ConnexionAPI处理程序中获取带有Content-Type: application/x-www-form-urlencodedPOST请求的主体。公认的答案here建议使用request.get_data(),但是这对我来说总是返回b''。我的猜测是,Connexion在调用request.get_data()之前解析数据,这导致了问题

在这种情况下,如何获取原始请求有效负载?如果无法直接获取它,如何从request.form(似乎包含解析数据)正确地重建它


Tags: 数据答案form处理程序datagetapplicationrequest
2条回答

我不确定是否有更简单的方法,但这似乎起到了作用:

import urllib.parse

form_data = request.form
request_data = '&'.join([k + '=' + urllib.parse.quote_plus(v) for k, v in form_data.items()])
from connexion import request

type(request.form)
# <class 'werkzeug.datastructures.ImmutableMultiDict'>
print(dict(request.form))

相关问题 更多 >