为什么 Google Apps 脚本给我这个 UrlFetchApp 脚本代码 429?
Why is Google Apps Script giving me this UrlFetchApp script code 429?
我遇到了一个 st运行ge 错误,我一直在兜圈子试图找出答案。
我决定学习一些 JavaScript/google 应用程序脚本来解析我玩的 api 游戏中的一些信息。我遵循了一堆教程并搜索了 google 和 Stack Overflow 的解决方案,但 none 已经奏效了。我想我已经将它缩小到一种特定的方法:“UrlFetchApp”。
现在我只是想从 API 中获取一些 JSON 数据并将其显示在日志中 window.
我一直收到这个:
[21-09-13 09:01:40:770 EDT] Exception: Request failed for https://api.guildwars2.com returned code 429. Truncated server response: {"text":"too many requests"} (use muteHttpExceptions option to examine full response)
at getRequest(Untitled:4:30)
现在是 st运行ge 部分,我 运行 来自 phone[=31 的脚本=] 在工作中测试一些理论并得到这个:
[21-09-13 09:02:20:943 EDT] {
"name": "Abomination Hammer",
"type": "Weapon",
"level": 0,
"rarity": "Fine",
"vendor_value": 0,
"default_skin": 5014,
"game_types": [
"Activity",
"Wvw",
"Dungeon",
"Pve"
],
"flags": [
"NoSell",
"SoulbindOnAcquire",
"SoulBindOnUse"
],
"restrictions": [],
"id": 15,
"chat_link": "[&AgEPAAAA]",
"icon": "https://render.guildwars2.com/file/E8507FFB6CF3C9094A69956344CEDBD9B47D95B6/434872.png",
"details": {
"type": "Hammer",
"damage_type": "Physical",
"min_power": 146,
"max_power": 165,
"defense": 0,
"infusion_slots": [],
"attribute_adjustment": 20.736,
"infix_upgrade": {
"id": 112,
"attributes": []
},
"secondary_suffix_item_id": ""
}
}
我怀疑现在是代码。
那是应该归还的。这是未经编辑的相同代码,在我的 phone 和计算机上多次 运行,结果始终相同。
这是我写的代码行:
function getRequest() {
var response = UrlFetchApp.fetch('https://api.guildwars2.com/v2/items/15');
Logger.log(response)
}
有人可以帮忙吗?我现在真的很沮丧。
响应状态代码 429 显示用户在给定时间内发送过多请求的情况。根据 Rate Limiting in Guild Wars 的文档,跟踪速率限制 per-IP 并且每分钟的最大请求数为 600。
在您的脚本中,您可以通过使用 response.getAllHeaders()
或 response.getHeaders()
打印 header 来确认速率限制,您将看到 x-rate-limit-limit=600
.
X-Rate-Limit-Limit is the maximum number of requests that may be
issued within a minute. This is a static value doesn’t contain count
for requests you have already sent.
通常,429状态码包括Retry-Afterheader。这表明用户在发出新请求之前必须等待多长时间。您还可以通过打印 header.
来查看
如果 Retry-After 未包含在 header 中,您可以按照上面的 Elchanan shuky Shukrun 评论使用 VPN,因为速率限制是每个 IP 跟踪。您还可以使用 Guild Wars forum 并为可能的错误创建 post。
参考:
我遇到了一个 st运行ge 错误,我一直在兜圈子试图找出答案。 我决定学习一些 JavaScript/google 应用程序脚本来解析我玩的 api 游戏中的一些信息。我遵循了一堆教程并搜索了 google 和 Stack Overflow 的解决方案,但 none 已经奏效了。我想我已经将它缩小到一种特定的方法:“UrlFetchApp”。
现在我只是想从 API 中获取一些 JSON 数据并将其显示在日志中 window.
我一直收到这个:
[21-09-13 09:01:40:770 EDT] Exception: Request failed for https://api.guildwars2.com returned code 429. Truncated server response: {"text":"too many requests"} (use muteHttpExceptions option to examine full response)
at getRequest(Untitled:4:30)
现在是 st运行ge 部分,我 运行 来自 phone[=31 的脚本=] 在工作中测试一些理论并得到这个:
[21-09-13 09:02:20:943 EDT] {
"name": "Abomination Hammer",
"type": "Weapon",
"level": 0,
"rarity": "Fine",
"vendor_value": 0,
"default_skin": 5014,
"game_types": [
"Activity",
"Wvw",
"Dungeon",
"Pve"
],
"flags": [
"NoSell",
"SoulbindOnAcquire",
"SoulBindOnUse"
],
"restrictions": [],
"id": 15,
"chat_link": "[&AgEPAAAA]",
"icon": "https://render.guildwars2.com/file/E8507FFB6CF3C9094A69956344CEDBD9B47D95B6/434872.png",
"details": {
"type": "Hammer",
"damage_type": "Physical",
"min_power": 146,
"max_power": 165,
"defense": 0,
"infusion_slots": [],
"attribute_adjustment": 20.736,
"infix_upgrade": {
"id": 112,
"attributes": []
},
"secondary_suffix_item_id": ""
}
}
我怀疑现在是代码。 那是应该归还的。这是未经编辑的相同代码,在我的 phone 和计算机上多次 运行,结果始终相同。
这是我写的代码行:
function getRequest() {
var response = UrlFetchApp.fetch('https://api.guildwars2.com/v2/items/15');
Logger.log(response)
}
有人可以帮忙吗?我现在真的很沮丧。
响应状态代码 429 显示用户在给定时间内发送过多请求的情况。根据 Rate Limiting in Guild Wars 的文档,跟踪速率限制 per-IP 并且每分钟的最大请求数为 600。
在您的脚本中,您可以通过使用 response.getAllHeaders()
或 response.getHeaders()
打印 header 来确认速率限制,您将看到 x-rate-limit-limit=600
.
X-Rate-Limit-Limit is the maximum number of requests that may be issued within a minute. This is a static value doesn’t contain count for requests you have already sent.
通常,429状态码包括Retry-Afterheader。这表明用户在发出新请求之前必须等待多长时间。您还可以通过打印 header.
来查看如果 Retry-After 未包含在 header 中,您可以按照上面的 Elchanan shuky Shukrun 评论使用 VPN,因为速率限制是每个 IP 跟踪。您还可以使用 Guild Wars forum 并为可能的错误创建 post。