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

Flutter移动端API调用报错:ClientException伴SocketException求助

Flutter移动端API调用SocketException(errno=7)问题排查与解决

问题说明

Flutter应用调用API时,Web和桌面端运行正常,但移动端启动触发异常,提示主机查找失败。

错误信息

Exception: ClientException with SocketException: Failed host lookup: 'xxxxxx' (OS Error: No address associated with hostname, errno = 7)

相关代码

请求代码:

try {
  final response = await http.get(
    Uri.parse(url),
    headers: {
      'Authorization': basicAuth,
      'Accept': 'application/json',
    },
  );

已添加的Android权限:

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

解决方案

  • 验证域名/IP有效性
    确认目标主机名xxxxxx拼写正确,可用设备浏览器直接访问该域名测试连通性,或替换为API的IP地址发起请求,排除DNS解析问题。

  • 检查移动端网络环境
    切换测试设备的网络(如从WiFi切换到手机流量),避免局域网DNS屏蔽、代理设置等导致的域名无法解析。

  • 修正Android权限配置
    确保权限声明放在<manifest>标签下(而非<application>内部),正确结构:

    <manifest xmlns:android="http://schemas.android.com/apk/res/android">
      <uses-permission android:name="android.permission.INTERNET" />
      <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
      <application ...>
        <!-- 应用其他配置 -->
      </application>
    </manifest>
    

    若API使用HTTP协议(非HTTPS),Android 9及以上需在<application>标签内添加明文请求允许:

    android:usesCleartextTraffic="true"
    
  • iOS端网络配置
    针对iOS设备,若API为HTTP协议,需在Info.plist中添加以下配置以绕过App Transport Security限制:

    <key>NSAppTransportSecurity</key>
    <dict>
      <key>NSAllowsArbitraryLoads</key>
      <true/>
    </dict>
    
  • 重置应用环境
    执行flutter clean清理编译缓存,然后完全卸载设备上的应用,重新编译安装,确保权限变更生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 11:21:07