为什么在Google Apps脚本中从UrlFetchApp返回空响应?

问题描述

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

我尝试使用Basic Auth和OAuth 2,以及按照here所述在清单中显式设置oauthScopes属性

我已经与API团队确认,当我到达端点时,他们确实确实在发送完整的响应,但是我收到的只是{}。我的问题似乎与this StackOverflow 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 {}

解决方法

不要以日志记录的面值查看。 ID membername memberid filedate enddate 12345 Alpha 5678 2020-01-01 2020-04-30 12345 Beta 9569 2020-05-01 2020-07-31 12345 Gamma 8765 2020-08-01 2999-12-31 服务的fetch方法始终返回HTTPResponse的实例,该实例首先是一个对象。这就是日志显示的内容(我假设您正在记录UrlFetchApp,因为这是我知道显示response的唯一上下文。

要从响应中提取有用的信息,请使用{}实例上公开的适当方法,例如getResponseCodegetContentText