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

树莓派用Python向Flask服务器发字典报连接错误如何解决?

问题排查与修复方案
  • 目标IP地址配置错误

你树莓派代码里填的127.0.0.1是本机回环地址,用这个地址树莓派只会尝试访问自己本机上运行的8080端口服务,自然找不到运行在PC上的Flask服务。
修复方法:

  1. 确保树莓派和你的PC连接在同一个局域网下
  2. 查看PC的局域网真实IP地址:Windows系统执行ipconfig,macOS/Linux系统执行ifconfig或ip addr,找到对应网卡的IPv4地址,格式一般为192.168.x.x/10.x.x.x
  • 请求路由不匹配

你树莓派端请求的路径是/events,但PC端Flask代码里只定义了接收POST请求的路由为/json,路径不匹配的情况下请求会被Flask拒绝。
修复方法:两边路径保持一致即可,二选一:

  1. 方案1:修改树莓派端的请求路径,把server_ip = 'http://127.0.0.1:8080/events'改成server_ip = 'http://[你的PC局域网IP]:8080/json'
  2. 方案2:修改Flask端的路由装饰器,把@app.route('/json', methods=['POST'])改成@app.route('/events', methods=['POST'])
  • 端口被防火墙拦截

PC端系统防火墙默认会拦截外部设备对本地端口的访问,你需要给8080端口开放入站规则,或者临时关闭PC的防火墙测试。


优化后代码示例

树莓派端关键修改部分:

# 把192.168.3.10换成你自己PC的真实局域网IP
server_ip = 'http://192.168.3.10:8080/json'
headers = {'Content-Type': 'application/json'}
# 可直接用json参数传字典,不用手动转json字符串
req = requests.post(server_ip, json=mac_dict)

Flask端保持原有配置即可,启动后确认输出显示运行在0.0.0.0:8080就代表允许外部设备访问。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 21:27:00