2015-06-23 99 views
1

我尝试使用Java使用.json扩展访问任何Reddit页面时,出现HTTP 429太多请求响应。HTTP 429使用Java仅访问Reddit .json页面时的请求太多

我使用的Java代码发现here没有任何修改(除了更改目标URL)。我试图访问的URL,如下列:

我就好了使用浏览器访问这些页面,但不能不顾我提出的事实编程方式访问它们每次都有一个请求,并在两者之间等待。 Reddit returns this message when more than 30 requests are made in a minute,但我做得比这还少,我的网络上没有人使用Reddit。

是否有人熟悉这一点,为什么我可能会得到这些错误?有没有更好的方法来使用Java来处理这个问题?

+0

你有没有“更改您的客户端的用户代理字符串唯一的描述性的东西”? – immibis

+0

我没有 - 我得看看。 – Porthos3

+0

工作出色。如果你答案,我会接受。我用: myHttpURLConnection.setRequestProperty(“http.agent”,“my-user-agent-name-here”); – Porthos3

回答

4

确保使用自定义的用户代理字符串 - 看到在API规则第4弹点:

  • 更改您的客户端的用户代理字符串的东西唯一的描述,包括目标平台,独特的应用标识符,版本字符串,和您的用户名作为联系人信息,按以下格式:

    <platform>:<app ID>:<version string> (by /u/<reddit username>) 
    
    • 实施例:

      User-Agent: android:com.example.myredditapp:v1.2.3 (by /u/kemitche) 
      
    • 许多默认用户代理(如“的Python/urllib的”或“Java”的)的显着限制(重点煤矿)鼓励独特的和描述的用户代理字符串。

    • 包含版本号并在构建应用程序时更新它,使我们能够安全地阻止应用程序的老版本/破损版本。
    • 从不说谎你的用户代理。这包括欺骗流行的浏览器和欺骗其他漫游器。我们会以极端的偏见禁止骗子。
+0

在有人需要的情况下添加代码示例 HttpGet httpGet = new HttpGet(yourUrl); httpGet.setHeader(“User-Agent”,yourUserAgentString); – Aerim