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

调用HTTP API无响应无报错,CloudWatch无触发,求助排查解决方法

问题排查与解决方案

1. 检查应用网络权限配置

  • Android端:确认android/app/src/main/AndroidManifest.xml中已添加网络权限,且权限标签位于根层级(不要放在<application>内部):
    <uses-permission android:name="android.permission.INTERNET" />
    
  • iOS端:HTTPS请求默认允许,若API有特殊证书配置,可检查Info.plist中的ATS设置,但常规HTTPS无需额外操作。

2. 脱离Flutter手动验证API可用性

用curl命令直接测试API端点,确认请求能否正常到达:

curl -v https://918pynqzta.execute-api.ap-southeast-1.amazonaws.com/dev/getAllElderly

如果curl也无响应,说明API本身存在问题(比如未部署、路径错误、AWS区域配置错误),或你的网络到AWS的连接被防火墙/VPN阻断;如果curl能拿到响应,再回到Flutter代码排查。

3. 给请求添加超时限制

默认http包无超时设置,会导致请求无限等待。添加超时强制终止请求,触发错误便于调试:

Future<void> makeGetRequest() async {
  try {
    const url = 'https://918pynqzta.execute-api.ap-southeast-1.amazonaws.com/dev/getAllElderly';
    final uri = Uri.parse(url);
    // 设置10秒超时
    final response = await http.get(uri).timeout(const Duration(seconds: 10));
    print('状态码: ${response.statusCode}');
    print('响应内容: ${response.body}');
  } catch (e) {
    print('错误详情: $e');
    print('错误类型: ${e.runtimeType}');
  }
}

若触发超时,说明请求根本未到达API,大概率是网络层面问题。

4. 核对API Gateway配置

  • 确认API已部署到指定的dev阶段,未部署的端点无法对外提供服务;
  • 检查资源路径是否完全匹配/getAllElderly,大小写、斜杠等细节不能出错;
  • 查看API Gateway的资源策略,确认是否设置了IP白名单限制,导致你的设备IP无法访问。

5. 增加网络调试日志

打印请求前后的关键信息,排查DNS解析、请求发起状态:

import 'package:http/http.dart' as http;
import 'dart:io';

Future<void> makeGetRequest() async {
  try {
    const url = 'https://918pynqzta.execute-api.ap-southeast-1.amazonaws.com/dev/getAllElderly';
    final uri = Uri.parse(url);
    
    print('开始请求: $uri');
    // 打印DNS解析结果
    final addresses = await InternetAddress.lookup(uri.host);
    print('解析到的IP: $addresses');
    
    final response = await http.get(uri).timeout(const Duration(seconds: 10));
    print('收到响应: ${response.statusCode}');
    print('响应体: ${response.body}');
  } catch (e) {
    print('错误: $e');
  }
}

如果DNS解析失败,说明设备无法识别AWS域名,可尝试切换DNS服务器(比如使用8.8.8.8)。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 07:33:14