Google应用程序脚本和使用UrlFetchApp获取JSON
我正在尝试使用UrlFetchApp从网站检索JSON 在过去几天里,我了解到Google Apps脚本(GAS)不支持在url中编码登录凭据,这是访问目标网站的首选方法 该网站不支持使用标题提供基本身份验证参数,例如:Google应用程序脚本和使用UrlFetchApp获取JSON,json,google-apps-script,Json,Google Apps Script,我正在尝试使用UrlFetchApp从网站检索JSON 在过去几天里,我了解到Google Apps脚本(GAS)不支持在url中编码登录凭据,这是访问目标网站的首选方法 该网站不支持使用标题提供基本身份验证参数,例如: Logger.log('Basic Auth in header'); var url2 = 'http://website.com' var response = UrlFetchApp.fetch(url2, { headers: { 'Authori
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,或者我运气不好?我不知道为什么这样做似乎可以解决问题,但是按照下面的方式编写代码应该可以解决您的问题(在我的案例中是有效的)。只需在
响应
初始化之外创建auth
字符串
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());
}
您的问题与JSON无关,这是您试图访问的站点的一个特定问题。如果您没有提供更详细的测试用例(或者至少是您试图访问的站点的链接),我们将无法帮助您。我的问题更多的是关于GAS而不是JSON-我正在尝试找出GAS是否有任何不支持URL编码登录凭据的解决方法。它应该可以工作,但是没有任何东西我们可以尝试,这是很难帮助的;我尝试在字符串中硬编码身份验证代码,而不是在运行时获取它。这孤立了问题;看来运行时计算值的格式一定把事情搞砸了。我还没弄清楚问题是什么。