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

Flutter在Mac端调用OMDb API持续加载并报错的解决求助

解决Flutter在Mac上无法访问OMDb API的问题

针对你遇到的SocketException: Failed host lookup错误,以下是分步排查和解决方法:

1. 验证Mac网络连通性

  • 直接在Mac浏览器访问https://www.omdbapi.com,确认能否正常打开。如果打不开,说明是网络本身问题:
    • 切换DNS服务器(比如谷歌8.8.8.8或Cloudflare 1.1.1.1):打开系统设置→网络→高级→DNS,添加新的DNS地址。
    • 终端执行ping www.omdbapi.com,如果无响应,联系网络服务商或检查路由器设置。

2. 配置iOS/ macOS网络权限

  • iOS模拟器/真机:在ios/Runner/Info.plist中添加网络权限配置,绕过ATS限制:
    <key>NSAppTransportSecurity</key>
    <dict>
        <key>NSExceptionDomains</key>
        <dict>
            <key>omdbapi.com</key>
            <dict>
                <key>NSIncludesSubdomains</key>
                <true/>
                <key>NSAllowsArbitraryLoads</key>
                <true/>
            </dict>
        </dict>
    </dict>
    
  • Mac桌面应用:打开系统设置→网络→防火墙,检查是否拦截了你的Flutter应用,允许其网络访问权限。

3. 切换为HTTPS协议

你的代码使用HTTP协议,OMDb支持HTTPS,替换后可避免多数ATS和网络拦截问题:

final url = 'https://www.omdbapi.com/?apikey=$apiKey&s=movie&y=$currentYear&type=$type';

4. 重置Flutter项目缓存

终端执行以下命令清除缓存并重新依赖:

flutter clean
flutter pub get

之后重启模拟器/应用,重新运行项目。

5. 检查代理设置

如果Mac开启了VPN或全局代理,可能导致域名解析失败:

  • 暂时关闭代理,测试能否正常访问API。
  • 若必须使用代理,确保代理规则允许访问omdbapi.com。

代码优化建议(可选)

增加SocketException捕获,便于调试网络问题:

Future<List<dynamic>> fetchData(String type) async { 
  const apiKey = 'MYKEY'; 
  final currentYear = DateTime.now().year; 
  final url = 'https://www.omdbapi.com/?apikey=$apiKey&s=movie&y=$currentYear&type=$type';

  try {
    final response = await http.get(Uri.parse(url));

    if (response.statusCode == 200) {
      final data = json.decode(response.body);
      if (data['Response'] == 'True') {
        return data['Search'] as List<dynamic>;
      } else {
        throw Exception(data['Error']);
      }
    } else {
      throw Exception('加载失败: 状态码 ${response.statusCode}');
    }
  } on SocketException catch (e) {
    throw Exception('网络异常: ${e.message}');
  } catch (e) {
    throw Exception('未知错误: $e');
  }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 20:18:24