0

所以我正在尝试为我运行的一个小型 subreddit 编写一个可执行的 JAR。

我有一个帖子,Jsoup 连接并读取该页面上的所有 URL。在另一种方法中,它然后连接到所有这些 URL(只是对帖子的评论)并从评论中获取 HTML 并将它们保存到 HashMap。

这很好,但是我收到了 429 HTTP 错误。所以为了解决这个问题,我添加了一个短暂的 5 秒等待。现在我得到一个SocketTimeoutException“读取超时”。一旦我将时间降低到 3 秒,我就在两者之间弹跳。

现在我用 Python 运行了一些 Reddit 机器人,我能够发出比我在这里做的更多的请求。我实际上有一个机器人每分钟发出数千个请求。所以我知道可以提出这些要求。

我的问题本质上是,我如何能够向 Reddit 发出多个请求并避免 429 HTTP 错误?我正在使用 Jsoup 连接和读取 HTML。

虽然我确定通过连接到 Reddit。他们的 OAuth2 API 将解决问题,我不知道如何在 Java 中实际使用 OAuth2(我实际上在 Python 中使用了一个包装器,所以公平地说我根本不知道)而且我不知道如何使用与 Jsoup。

4

2 回答 2

0

我的问题本质上是,我如何能够向 Reddit 发出多个请求并避免 429 HTTP 错误?

你自己回答这个问题:

虽然我确定通过连接到 Reddit。他们的 OAuth2 API 将解决这些问题,

API 文档中所述,如果使用 OAuth 进行身份验证,您每秒会收到两倍的请求。

您是否四处寻找有关如何在 Java 中处理 OAuth 流的示例?

您可能还会发现使用 Java的包装 之一更容易,而不是自己处理所有这些。

于 2015-07-10T18:13:32.063 回答
0

只需设置标题,您可以轻松传递它

User-Agent: super happy flair bot by /u/spladug
于 2016-01-16T02:47:02.180 回答