在限制时,不会返回等待时间



我正在使用Microsoft Graphfor OneNote。我观察到这些端点几乎没有问题。有时,当同时调用 API 时,会抛出限制异常 ( HTTP 429 )。突然,下一个 API 调用返回成功的响应。

根据文档,当限制处于活动状态时,响应标头中将返回一个Retry-After字段以及HTTP 429,但我从未在响应标头中收到此字段。

还有其他方法可以获取等待时间吗?

我应该等待多长时间才能进一步避免此问题?这对我来说是一个阻碍问题。请帮忙。

文档应该更清晰,并注意并非所有端点都返回Retry-After。这是因为并非所有终结点都使用相同的规则进行限制。

某些终结点(如 Exchange)基于查看窗口时间内的请求数的公式进行限制。这些终结点使用Retry-After进行响应,以提醒您必须等待多长时间才能获得新窗口。

其他终结点只是根据并发请求数进行限制。OneNote 是这些终结点之一。它不是查看一段时间内的请求,而是简单地将您限制为最多 5 个并发调用。由于限制不依赖于时间,因此无法提供Retry-After值。

这也是为什么您经常看到初始重试成功的原因,这意味着以前的一些调用已经完成,现在有 5 个或更少的并发请求。

https://blogs.msdn.microsoft.com/onenotedev/2016/01/12/onenote-api-throttling-and-how-to-avoid-it/

此博客文章包含有关如何避免来自 OneNote 终结点的限制(及其工作原理)的详细信息。

最新更新