Http错误429 java处理?

时间:2014-07-08 20:01:00

标签: java http error-handling http-status-code-429

我有一个java程序,可以在网站上搜索更新。它会在用户设置的一段时间内进行检查和休眠。

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

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

我通过chrome查看了源代码,但没有找到相关信息。然后我使用了getErrorStrem并且没有找到信息。

在stackoverflow上的另一个question,据说

  

如果一切设置正确,你也会收到一个   “Retry-after”标题以及429响应

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

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

1 个答案:

答案 0 :(得分:1)

正如rfc 6585

中所述
  

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

     

回复陈述应该包括解释的详细信息      条件,可以包含一个Retry-After 标头,指示多长时间      在提出新请求之前等待。

此特定标头仅是可选的。所以,如果你没有在标题中看到它,因为它不存在。

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

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

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