4

我正在尝试制作一种方法public void limit()来检查速率限制并休眠,但如果它受到速率限制,则直到重置为止。但是,我无法弄清楚如何制作 RateLimitStatus。我试过了: RateLimitStatus status = twitter.getRateLimitStatus(); 但它实际上并没有返回 RateLimitStatus ......坦率地说,我不确定那是什么意思。无论如何,如果有人知道如何获得 RateLimitStatus,他们的帮助将不胜感激,因为目前我的项目可能由于速率限制而崩溃,我想改变这一点。提前致谢!

4

3 回答 3

7
于 2013-07-25T15:27:35.143 回答
6
Map<String ,RateLimitStatus> rateLimitStatus = twitter.getRateLimitStatus();
for (String endpoint : rateLimitStatus.keySet()) {
    RateLimitStatus status = rateLimitStatus.get(endpoint);
    System.out.println("Endpoint: " + endpoint);
    System.out.println(" Limit: " + status.getLimit());
    System.out.println(" Remaining: " + status.getRemaining());
    System.out.println(" ResetTimeInSeconds: " + status.getResetTimeInSeconds());
    System.out.println(" SecondsUntilReset: " + status.getSecondsUntilReset());
}
于 2014-06-29T20:00:10.057 回答
0

Twitter API 还允许:

Log.d("TwitterActivity", "Limit:" + mTwitter.getFavorites().getRateLimitStatus().getLimit());

在哪里:

  • mTwitter 是你的 Twitter 对象
  • getFavorites() 可以被 Twitter4j 为 Twitter 对象提供的任何其他函数替换
  • getLimit() 只是您可以选择的各种选项之一

你可以像这样检查:

if(mTwitter.getFavorites().getRateLimitStatus().getLimit() <= 0){
    //do something
}
于 2016-01-06T04:08:55.593 回答