You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

树莓派部署Twilio视频流Demo遇500错误及JSON解析问题

解决Twilio视频流Demo迁移树莓派后的500内部服务器错误

错误根源

你的Flask前端服务的/join-room视图函数直接返回了Python字典,而树莓派上的Flask运行环境不支持直接将字典作为合法响应返回——Flask要求视图必须返回字符串、元组、Response实例或WSGI可调用对象,这才引发了500错误,进而导致前端因无法解析无效响应报JSON.parse语法错误。

修复方案

方案1:使用Flask的jsonify()包装响应

这是Flask官方推荐的返回JSON响应的方式,会自动设置正确的Content-Type头:

# 先导入jsonify
from flask import jsonify

@app.route('/join-room', methods=['POST'])
def join_room():
    # 你的原有逻辑:生成Twilio令牌、获取房间名等
    token = "你的Twilio令牌"
    room_name = "目标房间名"
    
    # 用jsonify包装字典返回
    return jsonify({'token': token, 'room': room_name})

方案2:手动构造Response对象

如果需要更灵活的响应控制,可以手动序列化字典并构造响应:

from flask import Response
import json

@app.route('/join-room', methods=['POST'])
def join_room():
    # 你的原有逻辑
    token = "你的Twilio令牌"
    room_name = "目标房间名"
    
    # 序列化字典为JSON字符串,构造响应并指定MIME类型
    response_data = json.dumps({'token': token, 'room': room_name})
    return Response(response_data, mimetype='application/json')

验证修复

修改代码后重启Flask服务,执行curl请求测试:

curl -X POST http://localhost:5002/join-room

此时应返回格式正确的JSON数据,前端的JSON.parse错误会消失,视频流即可正常加载。

内容的提问来源于stack exchange,提问作者Bruce Seymour

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 16:50:38