您可以在每次回复时致电
getRateLimitStatus()以获得一个
RateLimitStatus。
RateLimitStats.getRemaining()会告诉您该调用族可用的API请求的剩余数量,如果该数量达到零,则可以调用
RateLimitStatus.getSecondsUntilReset(),并至少等待那么长时间再进行其他调用。
有关Twitter速率限制的信息可以在以下位置找到:https : //dev.twitter.com/docs/rate-
limiting/1.1
这是一个基本示例:
do { TwitterResponse response = twitter.getFollowersIDs(userId, cursor); RateLimitStatus status = response.getRateLimitStatus(); if(status.getRemaining() == 0) { try { Thread.sleep(status.getSecondsUntilReset() * 1000); } catch(InterruptedException e) { // ... } }} while(cursor > 0);在您现在提供的代码中,您要对Twitter进行2次调用,
showUser并且
getUserTimeLine。您需要这两个电话后检查速率限制状态(包括
User和
ResponseList扩展
TwitterResponse,并有速度限制信息)。这些调用属于2个不同的资源族(
users和
statuses),每个速率限制窗口(15分钟)都允许调用这两种方法180次。



