1

我有一个搜索站点以获取更新的 Java 程序。它会检查并在用户设置的一段时间内休眠。

在一些测试期间,我将睡眠时间设置为 0 秒,忘记了它并且它过度请求(过度垃圾邮件?,不知道术语)该站点。如果我不去这个网站并手动检查某些东西,我就不会注意到这一点。

我得到的错误是 429 : too many requests。我在网上搜索过,发现该网站应该在什么时候可以再试一次(重试标头)发送给我。问题是我要么没有得到这些信息,要么找不到它。

我已经通过 chrome 查看了源代码,但没有找到信息。然后我用了getErrorStrem,没有找到信息。

在关于stackoverflow的另一个问题中,据说

如果一切设置正确,您还将收到“Retry-after”标头以及 429 响应

我对网络技术的了解相当有限。我编写的程序寻找我在查看页面源代码时注意到的模式。我的Java知识更好,但不是很好。

那么我如何获得重试信息?大约 20 个小时过去了,当我再次尝试时,我得到了同样的错误。

4

1 回答 1

2

rfc 6585中所述:

429 状态码表示用户在给定时间内发送了太多请求(“速率限制”)。

响应表示应该包含解释条件的详细信息,并且可以包含一个 Retry-After标头,指示在发出新请求之前要等待多长时间。

这个特定的标头只是可选的。因此,如果您在标题中看不到它,那是因为它不存在。

在响应表示中包含条件只是一个建议(因此不是强制性的)

没有关于此限制的规则:它取决于服务器配置。

有关 RFC 中常用动词的确切含义:您可以阅读此内容

于 2014-07-08T20:17:44.690 回答