当我尝试使用Java使用.json扩展名访问任何Reddit页面时,我收到HTTP 429 Too Many Requests响应。
我正在使用找不到here的Java代码而没有任何修改(除了更改目标URL)。我正在尝试访问以下网址:
我可以使用浏览器轻松访问这些页面,但无法以编程方式访问它们,尽管我每次都要发出一个请求并在其间等待。 Reddit returns this message when more than 30 requests are made in a minute,但我的收入远不如此,我的网络中没有其他人使用Reddit。
有人熟悉这个,为什么我可能会收到这些错误?有没有更好的方法来使用Java来解决这个问题?
答案 0 :(得分:5)
确保使用自定义用户代理字符串 - 请参阅API规则的第4个要点:
将客户端的用户代理字符串更改为唯一且具有描述性的内容,包括目标平台,唯一应用程序标识符,版本字符串和用户名作为联系信息,格式如下: / p>
<platform>:<app ID>:<version string> (by /u/<reddit username>)
示例:
User-Agent: android:com.example.myredditapp:v1.2.3 (by /u/kemitche)
许多默认用户代理(例如&#34; Python / urllib&#34;或&#34; Java&#34;)受到严重限制(强调我的)以鼓励独特和描述性用户代理字符串。
- 包含版本号并将其更新为您的应用程序,您的应用程序允许我们安全地阻止您的应用程序的旧错误/损坏版本。
- 永远不要骗你的用户代理。这包括欺骗流行的浏览器和欺骗其他机器人。我们将禁止极端偏见的骗子。