我正在尝试使用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,还是我运气不好?
答案 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());
}