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

Flutter请求报错Connection refused(errno=111,端口51158)如何解决?

Flutter本地接口调用Connection refused (errno 111) 解决方案

排查步骤

  • 步骤1:确认运行场景,修正请求地址
    报错中的localhost指向的是当前运行应用的设备本身的环回地址,而非你运行后端服务的电脑,不同场景的替换规则如下:
    • Android模拟器:将请求地址中的localhost替换为官方预设的电脑映射地址10.0.2.2,例如http://10.0.2.2:你的后端端口/接口路径
    • iOS模拟器:可直接使用电脑localhost,如果仍报错替换为电脑的局域网IPv4地址
    • 真机调试(Android/iOS通用):确保手机和电脑连接同一WiFi,将localhost替换为电脑的局域网IPv4地址

    电脑局域网IP查询方式:Windows执行ipconfig,macOS/Linux执行ifconfig/ip addr,取WLAN/以太网对应的IPv4地址即可

  • 步骤2:检查后端服务绑定配置
    确保后端服务没有仅绑定本地环回地址127.0.0.1,需要绑定0.0.0.0才能允许局域网内其他设备访问,不同框架配置示例:
    • Node.js Express:app.listen(3000, '0.0.0.0')
    • SpringBoot:配置文件添加server.address=0.0.0.0
  • 步骤3:检查应用网络权限与明文请求限制
    • Android端:在android/app/src/main/AndroidManifest.xml中添加网络权限:
      <uses-permission android:name="android.permission.INTERNET" />
      
      Android 9及以上系统默认禁止明文HTTP请求,如需使用HTTP可在application标签中添加配置:
      <application
          ...
          android:usesCleartextTraffic="true"
          ...>
      
    • iOS端:在ios/Runner/Info.plist中添加ATS配置,允许HTTP请求:
      <key>NSAppTransportSecurity</key>
      <dict>
          <key>NSAllowsArbitraryLoads</key>
          <true/>
      </dict>
      
  • 步骤4:快速验证
    直接在运行应用的模拟器/真机自带浏览器中输入你使用的请求地址,若无法正常返回数据,说明是地址/网络配置问题,与Flutter代码无关。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 23:36:03