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

使用Dio包调用本地API时出现Connection Timed Out问题求助

问题

使用Dio包调用朋友开发的本地API的POST接口,最初遇到SocketException,将127.0.0.1替换为当前IP并执行php artisan serve --host 192.168.1.105后解决该异常,但随后出现Connection Timed Out错误。即便延长连接超时时长也无法解决问题,Dio工具类代码如下:

import 'package:dio/dio.dart';

class DioHelper {
  static Dio? dio;
  static init() {
    dio = Dio(BaseOptions(
      baseUrl: "http://192.168.1.105:8000/api/",
      responseType: ResponseType.json,
      receiveTimeout: 30000,
      connectTimeout: 500000,
      followRedirects: false,
      receiveDataWhenStatusError: true,
    ));
  }

  static Future<Response> post(
      {required String url,
      Map<String, dynamic>? query,
      Map<String, dynamic>? body}) async {
    return await dio!.post(url, queryParameters: query, data: body);
  }
}

错误原因分析

  • 设备不在同一局域网:发起请求的设备(手机/模拟器)与运行Laravel服务的电脑未连接同一WiFi,IP网段不匹配,导致请求无法抵达目标主机。
  • Laravel服务监听地址异常:执行php artisan serve时,可能绑定的IP/端口与请求地址不符,比如端口不是8000,或主机IP输入错误,导致服务无法接收请求。
  • 防火墙拦截:电脑系统防火墙(Windows Defender、Mac防火墙)阻止了8000端口的外部连接请求。
  • 模拟器网络配置问题:安卓模拟器默认网络模式可能无法直接访问局域网IP,导致请求超时。

可行解决方案

1. 确认设备处于同一局域网

检查电脑和请求设备的WiFi连接状态,确保两者IP处于同一网段(如均为192.168.1.x)。

2. 验证Laravel服务监听状态

  • 执行php artisan serve --host 192.168.1.105 --port 8000明确指定IP和端口,启动后确认终端输出的服务地址为http://192.168.1.105:8000。
  • 在电脑浏览器中访问http://192.168.1.105:8000/api/[你的接口路径],确认服务可正常响应,排除服务本身故障。

3. 调整防火墙设置

临时关闭电脑防火墙后重新测试请求,若恢复正常,说明是防火墙拦截,需在防火墙规则中添加允许8000端口入站的权限。

4. 修正模拟器网络配置(安卓模拟器)

  • 若使用Android Studio模拟器,可将网络模式改为桥接模式;
  • 或执行命令adb reverse tcp:8000 tcp:8000,将模拟器8000端口映射到电脑8000端口,此时请求地址可改为http://10.0.2.2:8000/api/。

5. 完善Dio工具类

  • 确保DioHelper.init()在应用启动时调用(如main函数中),避免dio实例未初始化;
  • 添加异常捕获打印详细错误信息,便于排查:
static Future<Response> post(
    {required String url,
    Map<String, dynamic>? query,
    Map<String, dynamic>? body}) async {
  try {
    return await dio!.post(url, queryParameters: query, data: body);
  } catch (e) {
    print("请求错误详情: $e");
    rethrow;
  }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 22:55:27