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

Flutter搭配Deno开发时接口请求的端点地址应该如何设置?

问题排查与解决方案

核心原因

Android 模拟器的10.0.2.2确实是指向宿主机本地环回地址的专用别名,你遇到的请求失败问题主要来自三个常见配置遗漏:

  • Deno 默认拦截所有网络请求,启动时未加网络权限参数的话,即使监听了0.0.0.0,来自模拟器的外部请求也会被拦截
  • Android 9(API level 28)及以上版本默认禁止 HTTP 明文请求,你使用的http://10.0.2.2:8000属于明文请求,会被系统直接拦截
  • Windows 防火墙默认拦截外部设备对本地端口的访问,模拟器的请求会被判定为外部网络请求,被防火墙直接阻断

分步解决方法

第一步:调整 Deno 启动参数

启动 Deno 服务时必须添加--allow-net参数开放网络权限,完整启动命令参考:

deno run --allow-net your_server_file.ts

如果要缩小权限范围仅开放8000端口,可以使用限定参数:

deno run --allow-net=0.0.0.0:8000 your_server_file.ts

第二步:配置安卓应用允许明文请求

在 Flutter 安卓项目中修改配置:

  1. 打开android/app/src/main/AndroidManifest.xml文件
  2. 在<application>标签中添加android:usesCleartextTraffic="true"属性,修改后参考:
<application
    android:name="io.flutter.app.FlutterApplication"
    android:label="你的应用名称"
    android:icon="@mipmap/ic_launcher"
    android:usesCleartextTraffic="true">
    <!-- 其他原有配置保持不变 -->
</application>
  1. 保存后完全重启 Flutter 应用生效,不要使用热重载。

第三步:配置 Windows 防火墙放行规则

  • 打开 Windows Defender 防火墙,选择「高级设置」
  • 入站规则 -> 新建规则 -> 端口 -> 下一步 -> 选择TCP,特定本地端口填写8000 -> 下一步 -> 允许连接 -> 下一步 -> 勾选对应网络类型(常用场景勾选专用、公网即可) -> 下一步,填写规则名称后完成配置。

验证方式

配置完成后先打开模拟器自带的浏览器,访问http://10.0.2.2:8000/api/register,如果能正常返回接口数据,说明网络链路已打通,再在 Flutter 代码中发起请求即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 23:27:04