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

Flutter调用Spring Boot接口遇Connection failed问题求助

问题原因分析及解决方案

以下是导致Flutter调用Spring Boot接口失败的常见原因及对应解决办法:

  • localhost指向错误
    移动端设备(包括模拟器)的localhost指代设备自身,而非你的开发电脑。如果Spring Boot服务运行在电脑上,移动端无法通过localhost访问该服务。

    • 解决:用电脑的局域网IP地址替换localhost(可通过ipconfig(Windows)或ifconfig(Mac/Linux)查询),比如将请求地址改为http://192.168.1.100:8080/basic;安卓模拟器可使用10.0.2.2作为宿主机映射地址。
  • Android明文HTTP访问限制
    Android 9(API 28)及以上版本默认禁止明文HTTP请求,仅允许HTTPS。你的接口使用HTTP协议,会被系统拦截。

    • 解决:
      1. 在android/app/src/main/res/xml目录下创建network_security_config.xml文件,内容如下:
        <?xml version="1.0" encoding="utf-8"?>
        <network-security-config>
            <base-config cleartextTrafficPermitted="true" />
        </network-security-config>
        
      2. 在AndroidManifest.xml的<application>标签中添加配置:android:networkSecurityConfig="@xml/network_security_config"
  • 电脑防火墙拦截
    即使curl能本地访问接口,电脑防火墙可能阻止了局域网内其他设备访问8080端口。

    • 解决:检查电脑防火墙设置,允许8080端口的局域网入站请求;或更换Spring Boot服务端口后重启。
  • 接口无响应体导致解析异常
    你的Spring Boot接口返回类型为void,仅打印日志但不返回任何响应内容,可能导致Flutter端处理响应时出错。

    • 解决:修改接口返回具体响应内容,比如:
      @GetMapping("basic")
      @ResponseBody
      public String basic2() {
          System.out.println("basic get invoked");
          return "request success";
      }
      

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 04:08:26