为什么我在 Google Apps 脚本中从 UrlFetchApp 收到空响应?

Why am I getting an empty response back from UrlFetchApp in Google Apps Script?

我正在尝试使用 UrlFetchApp 从 Google Apps 脚本向外部 API 发出 GET 请求。当我使用 Postman 或 curl 发出此请求时,我得到了预期的响应。但是,当我用 UrlFetchApp 尝试时,我得到一个空响应 {}

我已尝试使用 Basic Auth 和 OAuth 2,并按照 here.

中所述在清单中明确设置 oauthScopes 属性

我已经与 API 团队确认,当我到达终点时,他们确实发回了完整的回复,但我收到的只是 {}。我的问题似乎与 this Whosebug question 类似,但未得到解答。

var headers = {
   "X-Client-Key": "KEY",
   "Authorization": "Bearer TOKEN"
};

var options = {
  method: "get",
  headers: headers,
}

var response = UrlFetchApp.fetch(ENDPOINT, options);
console.log(JSON.stringify(response));  // returns {}

不要相信你在日志中看到的内容。 UrlFetchApp 服务的 fetch 方法总是 returns HTTPResponse 的一个实例,它首先是一个对象。这就是日志向您显示的内容(我假设您正在记录 response,因为这是我知道显示 {} 的唯一上下文)。

要从响应中提取有用的信息,请使用 HTTPResponse 实例上公开的适当方法,例如 getResponseCode or getContentText.