Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google应用程序脚本和使用UrlFetchApp获取JSON_Json_Google Apps Script - Fatal编程技术网

Google应用程序脚本和使用UrlFetchApp获取JSON

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

我正在尝试使用UrlFetchApp从网站检索JSON

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

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

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编码登录凭据的解决方法。它应该可以工作,但是没有任何东西我们可以尝试,这是很难帮助的;我尝试在字符串中硬编码身份验证代码,而不是在运行时获取它。这孤立了问题;看来运行时计算值的格式一定把事情搞砸了。我还没弄清楚问题是什么。