【问题标题】:Handle 404 errors in UrlFetchApp.fetch()处理 UrlFetchApp.fetch() 中的 404 错误
【发布时间】:2015-10-31 17:20:47
【问题描述】:

我正在 Google 电子表格中创建一个扩展程序,并且正在尝试处理 urlFetch() 可能给出的 404 错误。现在它只是在电子表格顶部显示一个弹出窗口,如下所示:

http://i.stack.imgur.com/fvCPC.png

这是我的代码:

function doTestAPICall() {
  var headers = {
    'Authorization': 'Basic ' + Utilities.base64Encode(user + "/token:" + token)
  };
  var url = "https://" + subdomain + ".domain.com/api/v2/users/me.json";
  var options = {
    'contentType': 'application/json',
    'method': 'get',
    'headers': headers
  };
  var response = UrlFetchApp.fetch(url, options);
  if(response.getResponseCode() == 200){
    var json = response.getContent();
    var data = JSON.parse(json);
    if(data.user.email != user){
      return false;
    } else {
      //User was correctly authenticated
      return true;
    } 
  }else{
    return false;
  }
}

但是,该函数永远不会到达 response.getResponseCode(),因为它已经在 UrlFetchApp.fetch 函数上失败了。关于如何处理此问题的任何想法/建议?

谢谢!

--- 编辑---

根据 Amit 的建议,在 UrlFetchApp 选项中添加 muteHttpExceptions 解决了该问题。

代码现在看起来像这样:

function doTestAPICall() {
  var headers = {
    'Authorization': 'Basic ' + Utilities.base64Encode(user + "/token:" + token)
  };
  var url = "https://" + subdomain + ".domain.com/api/v2/users/me.json";
  var options = {
    'contentType': 'application/json',
    'method': 'get',
    'headers': headers,
    'muteHttpExceptions': true
  };
  var response = UrlFetchApp.fetch(url, options);
  if(response.getResponseCode() == 200){
    var json = response.getContentText();
    var data = JSON.parse(json);
    if(data.user.email != user){
      return false;
    } else {
      //User was correctly authenticated
      return true;
    } 
  }else{
    return false;
  }
}

【问题讨论】:

    标签: google-apps-script


    【解决方案1】:

    您可以在 HTTP 请求中将 muteHttpExceptions 设置为 true 以抑制这些错误。

    function fetchPage() {
      var response = UrlFetchApp.fetch("http://ctrlq.org/404", {muteHttpExceptions: true});
      if (response.getResponseCode() == 404) {
        Logger.log("Web page not found");
      }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-08-11
      • 2015-04-07
      • 2017-03-02
      • 2013-11-24
      • 1970-01-01
      • 2016-06-08
      • 2017-11-20
      • 2014-05-25
      相关资源
      最近更新 更多