【问题标题】:Http error 429 java handling?Http错误429 java处理?
【发布时间】:2014-08-29 17:10:48
【问题描述】:

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

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

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

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

在stackoverflow上的另一个question据说

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

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

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

【问题讨论】:

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


    【解决方案1】:

    rfc 6585中指定:

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

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

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

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-10-24
      • 2015-09-22
      • 2021-08-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-19
      • 2016-09-29
      相关资源
      最近更新 更多