异常:对sheets.spreadsheets.batchUpdate的 API调用失败,返回了空响应
我想知道是否有对Google表格API十分熟悉的人,能否准确解释这个错误的含义:Exception: API call to sheets.spreadsheets.batchUpdate failed with error: Empty response at...
由于我的代码库太大,甚至无法提供一个能重现问题的最小可复现示例(MRE),并且也无法稳定地重现。
希望有文档指引或对该错误的清晰解释(准确地说,什么是“empty response”、为什么会为空?),以便我能够解决这个问题。
解决方案
"Empty response"指的是HTTP层根本没有收到任何可解析的响应,而不是一个正常的API级错误。原因有以下几种:
- 有效载荷过大 — Google建议将
batchUpdate的有效载荷保持在2 MB以下,因为较大的请求可能会被Sheets控制之外的中间组件丢弃。将requests数组分成更小的批次。 - 服务器端超时 — Sheets会中止任何耗时超过180秒的请求,Apps Script的包装层会将其显示为“Empty response”而不是一个有意义的超时信息。
- Apps Script执行时间限制 — 脚本在6 分钟时被强制终止。如果
batchUpdate调用在接近这一上限时被中断,就会得到一个空响应。 - 短暂的服务器异常 — Google的服务器暂时不可用可能导致错误,但不会有相应的提示信息。
由于你无法稳定复现,这很可能是第4 或第3 种情况。对所有情况的解决办法都是相同的:使用指数回退(exponential backoff)重试,并将单次批量的载荷保持较小。
站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。