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

Google Sheets用UrlFetchApp拉取接口返回200但getContentText为undefined

解决Google Sheets脚本拉取接口返回undefined问题

问题原因

问题主要由两个常见原因导致:

  • 重复调用UrlFetchApp.fetch()发起3次相同请求,短时间内高频请求触发接口限流规则,第一次返回200正常响应,后续请求被拦截返回空内容
  • 接口返回的JSON数据体量较大,直接将完整内容输出到Apps Script控制台时,可能因为日志长度限制被截断,显示为undefined,不代表实际没有获取到内容

修正后的代码

function myFunction() {
  // 配置请求参数
  const options = {
    'muteHttpExceptions': true,
    'headers': {
      'Accept': 'application/json'
    }
  };
  // 仅发起一次请求,复用响应对象
  const response = UrlFetchApp.fetch("https://api.llama.fi/charts/Ethereum", options);
  // 从同一个响应对象读取所有属性
  const responseCode = response.getResponseCode();
  // 明确指定UTF-8编码解析响应内容
  const contentText = response.getContentText("UTF-8");
  // 验证内容获取状态,避免直接打印全量内容触发日志限制
  console.log("响应状态码:", responseCode);
  console.log("返回内容总长度:", contentText.length);
  console.log("返回内容前100字符:", contentText.slice(0, 100));
  // 如需处理JSON数据,可直接解析
  const jsonData = JSON.parse(contentText);
  console.log("第一条数据内容:", JSON.stringify(jsonData[0]));
}

验证方法

运行代码后查看执行日志:

  • 若返回内容长度大于0,说明已经正常拿到响应数据
  • 若需要将数据写入Google Sheets,可直接遍历解析后的jsonData数组写入对应单元格即可,无需打印全量内容

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 16:06:08