Google Apps脚本并使用UrlFetchApp获取JSON

时间:2014-05-13 14:11:18

标签: json google-apps-script

我正在尝试使用UrlFetchApp

从网站检索JSON

我在过去几天了解到Google Apps Scripts(GAS)不支持在网址中编码登录凭据,这是访问目标网站的首选方法。

网站不支持使用标头提供基本身份验证参数,例如:

Logger.log('Basic Auth in header');
  var url2 = 'http://website.com'
 var response = UrlFetchApp.fetch(url2, {
   headers: {
     'Authorization': 'Basic ' + Utilities.base64Encode('logon parms')
   },
   muteHttpExceptions: true
 });
 Logger.log('Response Code: ' + response.getResponseCode());
}

我找不到'未找到'上面的错误,但它显然是成功验证,因为如果我更改密码,它会返回一个未经授权的'错误。

我的问题 - 有没有其他方法可以使用GAS获取JSON,还是我运气不好?

1 个答案:

答案 0 :(得分:1)

我不知道为什么这似乎解决了这个问题,但是如下编写代码应该可以解决你的问题(它适合我的情况)。只需在auth初始化之外创建response字符串。

Logger.log('Basic Auth in header');
var url2 = 'http://website.com';
var auth = 'Basic ' + Utilities.base64Encode('logon parms');
var response = UrlFetchApp.fetch(url2, {
   headers: {
     'Authorization': auth
   },
   muteHttpExceptions: true
 });
 Logger.log('Response Code: ' + response.getResponseCode());
}