我一直有一個奇怪的錯誤,我一直在繞圈子試圖弄清楚。 我決定學習一些JavaScript/谷歌應用腳本,以便從我玩的一個游戲的api中決議一些資訊。我按照一堆教程,在谷歌和Stack Overflow上搜索解決方案,但都沒有成功。我想我已經把范圍縮小到了一個特定的方法:"UrlFetchApp"
。現在,我只是想從 API 中抓取一些 JSON 資料,并將其顯示在日志視窗中。
我一直得到這樣的結果:
我一直得到這樣的結果:
[21-09-1309: 01:40:770 EDT ] Exception: Request failed for https://api.guildwars2.com returned code 429. 截斷的服務器回應。{"text": "too many requests"}。(使用muteHttpExceptions選項來檢查完整的回應)。
在getRequest(Untitled:4:30)
現在是奇怪的部分,我在作業時用我的手機運行了這個腳本,以測驗一些理論,結果是:
[21-09-1309。 02:20:943 EDT ] {
"name": "Abomination Hammer"。
"type": "Weapon",
"級別": 0,
"rarity": "精細"。
" vendor_value": 0,
"default_skin": 5014,
"game_types": [
"活動",
"Wvw",
"Dungeon",
"Pve".
],
"flags": [
"NoSell",
"SoulbindOnAcquire",
"SoulBindOnUse".
],
"限制"。[],
"id": 15,
"chat_link": "[&AgEPAAAA]",
"icon": "https://render.guildwars2.com/file/E8507FFB6CF3C9094A69956344CEDBD9B47D95B6/434872.png",
"詳細資訊": {
"type": "Hammer",
"damage_type": "物理",
"min_power": 146,
"max_power": 165,
"defense": 0,
"infusion_slots": [],
" attribute_adjustment": 20.736,
"infix_upgrade": {
"id": 112,
"屬性"。[]
},
"secondary_suffix_item_id": ""。
}
}
我懷疑現在是代碼的問題。 這就是本來應該回傳的東西。這是同樣的代碼,沒有經過編輯,在我的手機和電腦上運行了多次,結果總是一樣的。
這是我寫的那行代碼:
function getRequest(){
var response = UrlFetchApp.fetch('https://api.guildwars2.com/v2/items/15') 。
Logger.log( response)。
}
誰能幫幫我?我現在真的很苦惱。
uj5u.com熱心網友回復:
回應狀態代碼429顯示當一個用戶在一定時間內發送了太多的請求。根據《激戰》中的速率限制的檔案,速率限制是按IP跟蹤的,每分鐘的最大請求數是600。
在你的腳本中,你可以通過使用response.getAllHeaders()或response.getHeaders()列印頭來確認速率限制,你會看到x-rate-limit-limit=600。
X-rate-limit-limit是在一分鐘內可能發出的最大請求數。 在一分鐘內發出的最大請求數。這是一個靜態值,不包含你已經發出的請求的計數。 你已經發送的請求。
通常,429狀態代碼包括Retry-After頭。這表明用戶在提出新請求之前必須等待多長時間。你也可以通過列印標頭來查看。
如果Retry-After沒有包含在頭資訊中,你可以按照上面Elchanan shuky Shukrun的評論來使用VPN,因為速率限制是按IP跟蹤的。你也可以使用Guild Wars論壇,并為可能的bug創建一個帖子。
參考資料:
。轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/319364.html
標籤:
