Thunkable POST请求未以JSON发送致Flask解析失败求助
解决Thunkable POST请求无法以JSON格式传输数据的问题
核心问题排查与解决步骤
1. 修正Thunkable的请求体设置
这是最常见的错误点:
- 打开Thunkable的POST请求组件,找到请求体(Body)的类型选项,不要选择"Text",切换为"JSON"类型。
- 在JSON输入区域,直接编写标准的JSON键值对结构,比如:
注意不要将整个JSON内容用引号包裹(比如不要写成{"username": "test", "age": 25}"{\"username\": \"test\"}",这会被当成字符串文本发送)。
2. 确保请求头正确配置
- 在Thunkable的请求头设置中,添加一条键值对:
- 键:
Content-Type - 值:
application/json
确认没有拼写错误,严格遵循标准能避免潜在的解析问题。
- 键:
3. Flask端的验证与调试
如果调整后还是无法解析,可以在Flask接口中添加调试代码,确认请求内容:
from flask import Flask, request, jsonify import json app = Flask(__name__) @app.route('/api/your-endpoint', methods=['POST']) def handle_request(): # 打印请求头,确认Content-Type是否正确 print("Request Headers:", request.headers) # 打印原始请求数据 print("Raw Request Data:", request.data.decode('utf-8')) # 尝试解析JSON data = request.get_json() if not data: # 如果自动解析失败,手动从原始数据转换 try: data = json.loads(request.data) except json.JSONDecodeError: return jsonify({"error": "Invalid JSON format"}), 400 return jsonify({"received_data": data}), 200 if __name__ == '__main__': app.run(debug=True)
运行后查看控制台输出,就能明确Thunkable发送的内容格式是否正确。
为什么Postman能正常工作?
Postman在选择"Raw"并设置Content-Type为application/json时,会自动将输入的JSON内容以正确的JSON payload格式发送;而Thunkable如果选了文本类型,即使内容是JSON字符串,也会被当成纯文本传输,导致Flask无法用request.get_json()自动解析。
内容的提问来源于stack exchange,提问作者Pavol Bujna
相关产品推荐
相关产品推荐

