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

Flutter中Android真机如何连接本地Web服务器并调用API

解决Flutter Android真机连接本地Web服务器的问题

核心原因

10.0.2.2是Android模拟器专属的本机映射地址,真机无法识别这个地址——因为真机和你的电脑是同一局域网内的独立设备,必须用电脑的局域网IP地址才能访问本地服务器。

具体解决步骤

  • 替换API地址中的IP
    先找到你电脑的局域网IPv4地址:

    • Windows:打开命令提示符,输入ipconfig,找到当前网络(WiFi/以太网)的IPv4地址(比如192.168.3.105)
    • Mac/Linux:打开终端,输入ifconfig或ip addr,找到本地网卡的inet地址
      把代码中的API地址替换成对应IP:
    Uri.parse("http://192.168.3.105:8000/api/login") // 替换成你的电脑局域网IP
    
  • 确保设备在同一局域网
    Android真机和电脑必须连接同一个WiFi网络;如果用USB调试,也可以开启电脑的USB网络共享功能,让真机通过USB共享电脑网络。

  • 关闭电脑防火墙(或添加端口规则)
    电脑防火墙可能拦截真机的请求,先暂时关闭防火墙测试连接。如果不想关闭防火墙,可以在防火墙设置中添加入站规则,允许8000端口的TCP连接。

  • 配置本地服务器监听所有网卡
    很多本地服务器默认只监听localhost(127.0.0.1),只有本机能访问,需要修改配置让它监听0.0.0.0:

    • Django:启动命令改为python manage.py runserver 0.0.0.0:8000
    • Node.js:将监听地址从localhost改为0.0.0.0,比如app.listen(8000, '0.0.0.0')
    • PHP内置服务器:启动命令改为php -S 0.0.0.0:8000
  • 检查Android网络权限
    确保项目的android/app/src/main/AndroidManifest.xml中添加了网络权限:

    <uses-permission android:name="android.permission.INTERNET" />
    

    Flutter新项目默认包含这个权限,但旧项目可能需要手动添加。

修改后的示例代码

Future login(email, password) async {
      LoginResponseModel? loginResponseModel;
      Map<String, String> body = {
        "email": email,
        "password": password,
      };

      var response = await myhttp.post(
        Uri.parse(
          "http://192.168.3.105:8000/api/login",  // 替换为你的电脑局域网IP
        ),
        body: body,
        // headers: headers,
      );
      if (response.statusCode == 401) {
        ScaffoldMessenger.of(context)
          ..hideCurrentMaterialBanner()
          ..showMaterialBanner(materialBanner);
      } else {
        loginResponseModel = LoginResponseModel.fromJson(
          json.decode(response.body),
        );
        saveUser(loginResponseModel.data.token, loginResponseModel.data.name);
        // print("result:" + response.body);
      }
    }

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 17:43:16