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

Postman正常的HTTP GET请求在Flutter中失败的排查与解决

Flutter调用API出现Host查找失败的解决方法

以下是针对Failed Host To lookup错误的具体排查和解决步骤:

  • 添加网络权限
    物理设备运行Flutter应用时,必须配置网络权限才能访问外部API:

    • Android:在android/app/src/main/AndroidManifest.xml中,在<application>标签上方添加:
      <uses-permission android:name="android.permission.INTERNET" />
      
      若API使用HTTP协议(非HTTPS),还需在<application>标签内添加android:usesCleartextTraffic="true"。
    • iOS:在ios/Runner/Info.plist中添加以下配置,允许网络请求:
      <key>NSAppTransportSecurity</key>
      <dict>
        <key>NSAllowsArbitraryLoads</key>
        <true/>
      </dict>
      
  • 验证URL格式正确性
    确保Uri.parse传入的URL没有多余字符(如空格、换行),且主机域名正确。可以先在设备浏览器中直接访问该URL,确认能正常加载内容。

  • 排查网络与DNS问题

    • 确保设备和Postman处于同一网络环境(如同一WiFi),避免因网络差异导致DNS解析失败。
    • 尝试切换网络(WiFi/手机流量),测试是否能正常解析主机。
  • 简化请求代码测试
    先使用更简洁的http.get方法替代StreamedResponse,排除请求方式的问题:

    import 'package:http/http.dart' as http;
    
    Future getlist() async {
      final headers = {'Ocp-Apim-Subscription-Key': 'thekeyishere'};
      final url = Uri.parse('https://linkishere.com/all?page=1');
      
      try {
        final response = await http.get(url, headers: headers);
        if (response.statusCode == 200) {
          print(response.body);
        } else {
          print('请求失败: ${response.statusCode} - ${response.reasonPhrase}');
        }
      } catch (e) {
        print('异常信息: $e');
      }
    }
    
  • 检查代理设置
    若设备开启了代理,而Postman未使用代理,会导致主机解析失败。关闭设备的代理设置后重新测试。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 06:15:06