9

現在、私のアプリは OAuth を使用して Twitter API と通信しています。12 月に、Twitter は OAuth のレート制限を 1 時間あたり 350 リクエストに引き上げました。しかし、私はこれを見ていません。account/rate_limit_statusメソッドからまだ 150 を取得しています。

X-RateLimit-Limit新しいレート制限を取得するには、HTTP ヘッダーを使用する必要があると言われました。ただし、私のコードでは、そのヘッダーは表示されません。

これが私のコードです...

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();
    }
}

を調べると、 のプロパティがあり、16 個のヘッダーがあるresponseことがわかります。ただし、リストHeadersにはありません。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.xmlX-RateLimit-Limitにアクセスすると、ヘッダーがありません。しかし、http://twitter.com/statuses/public_timeline.xmlにアクセスすると、そこにあります。したがって、別の方法を使用する必要があると思います。

それでも150と書いてあります!

于 2010-03-03T14:06:51.717 に答える