Python Flask 请求 400 错误代码

标签 python flask python-requests flask-restful

我正在从对 Flask-rest 的请求中捕获 POST 请求,并且不断收到 400 错误代码(错误请求)。

请求部分:

def send_data(asset_id, data1, data2, data3):
    global _server_api
    headers = {'content-type': 'application/json'}
    complete_url = _server_api + asset_id
    payload = {'d1': data1,'d2': data2,'d3': data3}
    response = requests.post(complete_url, data=json.dumps(payload), headers=headers)

flask 部分:

from flask.ext.restful.representations.json import output_json
from flask import Flask, request
from flask_restful import reqparse, abort, Api, Resource
app = Flask(__name__)
api = Api(app)
assets = {}
class Broker(Resource): 
   def post(self, asset_id):
       assets[asset_id] = dict()
       data1 = request.form['d1']
       data2 = request.form['d2']
       data3 = request.form['d3']
       assets[asset_id]['d1'] = request.form['d1']
       assets[asset_id]['d2'] = request.form['d2']
       assets[asset_id]['d3'] = request.form['d3']
       collector(asset_id, data1, data2, data3) #<--- writes to DB
       return {asset_id: assets[asset_id]}

api.add_resource(Broker, '/api-v1.0/add/<string:asset_id>', methods=['PUT', 'POST', 'GET'])

错误代码:

{u'status': 400, u'message': u'Bad Request'}

当请求部分调用 API 时,我不断收到 400 错误代码。

request.form 更改为 request.get_json 时,出现如下错误。

TypeError: 'instancemethod' object has no attribute '__getitem__'

如有任何帮助,我们将不胜感激。

最佳答案

您正在发送 JSON 请求,但应用程序需要一个表单。在应用中使用 request.get_json() 而不是 request.form

关于Python Flask 请求 400 错误代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31484987/

相关文章:

python - 如何在 python 中将可变长度列表打印为列?

python - 如何将 ReStructuredText 文档转换为 ipython 笔记本?

python - 使用 NLTK 对 POS 标记词进行词形还原?

python - Flask Web 应用程序项目突然行为变化 - 连接到调试器两次

python - 在 Zeep 或 suds 库 Python 中使用 pfx 或 p12 身份验证的 Soap 调用

Python 请求响应解码

python - Pandas 的大小和计数有什么区别?

python - 在 json 中格式化 Flask 应用程序日志

python - 如何使用Python获取网站的协议(protocol)(http或https)

python - HTML 和 Flask 新手。如何让用户无需登录即可提交图像和描述?