Как считать HTTP-заголовок из ответа с помощью.NET HttpWebRequest API?

Мое приложение в настоящее время использует OAuth для общения с Программным интерфейсом Твиттера. Еще в декабре Твиттер повысил ограничение скорости для OAuth к 350 запросам в час. Однако я не вижу это. Я все еще добираюсь 150 из account/rate_limit_status метода.

Мне сказали, что я должен был использовать 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();
    }
}

Если я осматриваю response, Я вижу, что это имеет свойство для Headers, и это там - 16 заголовков. Однако я не имею X-RateLimit-Limit в списке.

Image
(источник: yfrog.com)

Какая-либо идея, что я делаю неправильно?

9
задан Glorfindel 24 June 2019 в 21:15
поделиться

2 ответа

Посмотрите на необработанный текст ответа (например, с помощью Fiddler). Если заголовка там нет, то никакой код C# не заставит его появиться :) Судя по тому, что вы показали, похоже, что заголовка в ответе нет.

Обновление: Когда я перехожу на: http://twitter.com/account/rate_limit_status.xml нет заголовка X-RateLimit-Limit. Но когда я перехожу на http://twitter.com/statuses/public_timeline.xml, он там есть. Поэтому я думаю, что вам просто нужно использовать другой метод.

Но там все равно написано 150!

2
ответ дан 4 December 2019 в 14:28
поделиться

Вы должны просто уметь использовать:

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

Если это не сработает должным образом, вы можете посмотреть response.Headers и посмотреть, что там внутри.

12
ответ дан 4 December 2019 в 14:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: