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

如何在Flutter中处理仅成功返回200的API调用错误?

API调用无明确错误响应时的错误处理方案

针对这种仅在成功时返回200+响应、失败时无有效反馈的API,可通过以下方式实现可靠的错误处理:

  • 设置请求超时阈值
    由于失败时无响应返回,超时是最直接的失败判定依据。根据API的正常响应速度,设置合理的超时时间(比如10-30秒),一旦请求超时,立即判定为调用失败并提示用户。
    示例代码(JavaScript):

    const controller = new AbortController();
    const timeoutId = setTimeout(() => controller.abort(), 15000); // 15秒超时
    
    try {
      const response = await fetch('your-api-url', {
        signal: controller.signal
      });
      clearTimeout(timeoutId);
      if (response.status === 200) {
        // 处理成功响应
      } else {
        alert('请求失败,请稍后重试');
      }
    } catch (error) {
      // 捕获超时、网络错误等异常
      alert('请求失败,请检查网络或稍后重试');
    }
    
  • 校验响应数据完整性
    即使拿到200状态码,也要验证返回的数据是否符合业务预期(比如是否包含必填字段、数据格式是否正确)。若数据不完整或格式异常,同样判定为调用失败。
    示例逻辑(Python):

    import requests
    
    try:
        response = requests.get('your-api-url', timeout=15)
        if response.status_code == 200:
            data = response.json()
            # 校验必填字段
            if 'required_field' not in data:
                raise ValueError("响应数据不完整")
            # 处理成功数据
        else:
            print("请求失败,请稍后重试")
    except (requests.exceptions.RequestException, ValueError) as e:
        print("请求失败,请检查网络或稍后重试")
    
  • 统一异常捕获逻辑
    将所有可能导致请求失败的情况(超时、网络中断、数据校验失败等)统一捕获,通过友好的提示告知用户操作失败,避免用户看到无意义的空白或系统报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 05:50:34