簡體   English   中英

如何使用.NET HttpWebRequest API從響應中讀取HTTP頭?

[英]How to read HTTP header from response using .NET HttpWebRequest API?

我的應用目前使用OAuth與Twitter API進行通信。 早在去年12月,Twitter就將OAuth的費率上限提高到每小時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();
    }
}

如果我檢查response ,我可以看到它有Headers的屬性,並且有16個頭。 但是,我沒有列表中的X-RateLimit-Limit

圖片
(來源: yfrog.com

知道我做錯了什么嗎?

你應該簡單地使用:

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

如果這不能按預期工作,你可以看一下response.Headers並看看那里有什么。

查看原始響應文本(例如,使用Fiddler)。 如果沒有標題,則不會顯示任何數量的C#代碼。 :)從您所顯示的內容來看,標題似乎不在響應中。

更新:當我訪問: http//twitter.com/account/rate_limit_status.xml時 ,沒有X-RateLimit-Limit標頭。 但是當我訪問http://twitter.com/statuses/public_timeline.xml時 ,它就在那里。 所以我認為你只需要使用不同的方法。

但它仍然說150!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM