我在這里查看了所有相關問題(例如this),但仍然無法理解這個非常簡單的任務。因此,嘗試使用 NumVerify API 驗證數字。我們仍然在 APILAYER 上使用免費許可證,所以我們不時收到以下錯誤
請求失敗https://apilayer.net回傳代碼 500
我想添加一個回圈,以便腳本將重試,直到收到正確的回應。這是基于這里幾個答案的片段:
function numverifylookup(mobilephone) {
console.log("input number: ",mobilephone);
var lookupUrl = "https://apilayer.net/api/validate?access_key=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX&number=" mobilephone "&country_code=IL";
try {
var response = UrlFetchApp.fetch(lookupUrl);
if (response) {//Check for truthy value
var json = response.getContentText();
} else {
Utilities.sleep(2000);
continue;//If "get" returned a falsy value then continue
}
} catch(e) {
continue;//If error continue looping
}
var data = JSON.parse(response);
遺憾的是,由于以下錯誤,仍然無法正常作業:
繼續必須在回圈內。(第 10 行
有什么想法嗎?我認為使用 muteHTTPexepctions 解決這個問題實際上更好,但不能完全使它起作用。謝謝!
uj5u.com熱心網友回復:
我想我讓這個作業如下:
function numverify(mobilephone);
console.log("input number: ",mobilephone);
var lookupUrl = "https://apilayer.net/api/validate?access_key=XXXXXXXXXXXX&number=" mobilephone "&country_code=IL";
var i = 0;
var trycount = 1;
var errorcodes = "";
while (i != 1) {
var response = UrlFetchApp.fetch(lookupUrl, {muteHttpExceptions: true });
var responsecode = response.getResponseCode();
var errorcodes = errorcodes "," responsecode;
if (responsecode = 200) {//Check for truthy value
var json = response.getContentText();
var i = 1
} else {
var trycount = trycount 1;
Utilities.sleep(2000);
}
}
var data = JSON.parse(response);
var valid = data.valid;
var localnum = data.local_format;
var linetype = data.line_type;
console.log(data," ",valid," ",localnum," ",linetype," number of tries= ",trycount," responsecodes= ", errorcodes);
var answer = [valid,localnum,linetype];
return answer;
}
如果它仍然不起作用,我會回傳。感謝您的幫助!
uj5u.com熱心網友回復:
你不能continue用來實作你想要的,相反你可以/需要再次呼叫該函式:
function numverifylookup(mobilephone) {
console.log("input number: ", mobilephone);
var lookupUrl = "https://apilayer.net/api/validate?access_key=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX&number=" mobilephone "&country_code=IL";
try {
var response = UrlFetchApp.fetch(lookupUrl);
if (response) {//Check for truthy value
var json = response.getContentText();
} else {
Utilities.sleep(2000);
numverifylookup(mobilephone);
}
} catch (e) {
Utilities.sleep(2000);
numverifylookup(mobilephone);//If error rerun the function
}
var data = JSON.parse(response);
}
正如您可以從檔案中得出的那樣,該陳述句continue只能在回圈內部使用,例如for回圈。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/381023.html
標籤:谷歌应用程序脚本 错误处理 运行时错误 urlfetch
上一篇:當每個檔案也有多個作業表時,如何在多個單獨的GoogleSheet檔案中添加單元格值?
下一篇:如何在多張紙上使用專案
