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

如何将Flutter应用与本地Django服务器连接?连接被拒绝问题求助

Flutter 连接本地Django服务器失败的解决方法

我在本地主机8000端口运行了Django服务器(地址:http://127.0.0.1:8000),开发Flutter应用时无法连接到该服务器,已尝试以下三种方式均失败:

  • 尝试连接电脑的私有IP地址,但未成功:
Future<void> test() async {
    print('1');
    final url = Uri.parse('http://192.168.1.42:8000/users/');
    final response = await http.get(url);
    print(response);
    print('2');
  }
  • 尝试连接localhost,出现连接拒绝错误:
Future<void> test() async {
    print('1');
    final url = Uri.parse('http://localhost:8000/users/');
    final response = await http.get(url);
    print(response);
    print('2');
  }

E/flutter (27014): [ERROR:flutter/runtime/dart_vm_initializer.cc(41)] Unhandled Exception: Connection refused

  • 尝试连接localhost等效地址127.0.0.1,出现相同的连接拒绝错误:
Future<void> test() async {
    print('1');
    final url = Uri.parse('http://127.0.0.1:8000/users/');
    final response = await http.get(url);
    print(response);
    print('2');
  }

解决步骤:

  1. 修改Django服务器监听地址
    默认Django仅监听本地回环地址(127.0.0.1),其他设备无法访问。启动服务器时执行以下命令,让其监听所有网络接口:
python manage.py runserver 0.0.0.0:8000
  1. 确保设备处于同一局域网
    Flutter运行的模拟器/真机必须和运行Django的电脑连接同一WiFi或有线网络。

  2. 根据设备类型选择正确的连接地址

  • Android模拟器:模拟器的localhost指向自身,需使用特殊映射地址10.0.2.2访问主机服务:
    final url = Uri.parse('http://10.0.2.2:8000/users/');
    
  • iOS模拟器:可直接使用localhost或127.0.0.1,若无效则替换为电脑的私有IP。
  • 真机:直接使用电脑的私有IP(如192.168.1.42),同时确保电脑防火墙未拦截8000端口。
  1. 检查防火墙设置
    临时关闭电脑防火墙,或在防火墙规则中添加允许8000端口的入站连接权限。

  2. 验证服务器可访问性
    用同一局域网内的手机浏览器访问http://你的电脑私有IP:8000/users/,若能正常返回数据,说明服务器配置正常,问题出在Flutter端;若无法访问,重新检查Django启动命令和防火墙设置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 03:45:22