9

我的应用程序当前使用 OAuth 与 Twitter API 进行通信。早在去年 12 月,Twitter 就将 OAuth 的速率限制提高到每小时 350 个请求。但是,我没有看到这一点。我仍然从account/rate_limit_status方法中获得 150。

有人告诉我,我需要使用X-RateLimit-LimitHTTP 标头来获取新的速率限制。但是,在我的代码中,我没有看到该标题。

这是我的代码...

HttpWebRequest request = (HttpWebRequest)WebRequest.Create(newURL);
request.Method = "GET";
request.ServicePoint.Expect100Continue = false;
request.ContentType = "application/x-www-form-urlencoded";

using (WebResponse response = request.GetResponse())
{
    using (StreamReader reader = new StreamReader(response.GetResponseStream()))
    {
        responseString = reader.ReadToEnd();
    }
}

如果我检查response,我可以看到它有一个属性Headers,并且有 16 个标题。但是,我没有X-RateLimit-Limit在列表中。

图片
(来源:yfrog.com

知道我做错了什么吗?

4

2 回答 2

12

您应该能够简单地使用:

using (WebResponse response = request.GetResponse())
{
  string limit = response.Headers["X-RateLimit-Limit"];
  ...
}

如果这不能按预期工作,您可以查看 response.Headers 并查看其中的内容。

于 2010-03-03T14:07:16.923 回答
2

查看原始响应文本(例如,使用 Fiddler)。如果标题不存在,则没有多少 C# 代码会使其出现。:) 从您所显示的内容来看,标题似乎不在响应中。

更新:当我去:http: //twitter.com/account/rate_limit_status.xml没有X-RateLimit-Limit标题。但是当我访问http://twitter.com/statuses/public_timeline.xml时,它就在那里。所以我认为你只需要使用不同的方法。

不过,它仍然显示 150!

于 2010-03-03T14:06:51.717 回答