2010-03-03 13 views
7

मेरा ऐप वर्तमान में ट्विटर एपीआई के साथ संवाद करने के लिए ओएथ का उपयोग करता है। दिसंबर में, ट्विटर ने ओएथ के लिए प्रति घंटे 350 अनुरोधों की दर सीमा बढ़ा दी। हालांकि, मैं इसे नहीं देख रहा हूं। मुझे अभी भी account/rate_limit_status विधि से 150 मिल रहा है।.NET HttpWebRequest API का उपयोग कर प्रतिक्रिया से HTTP शीर्षलेख को कैसे पढ़ा जाए?

मुझे बताया गया कि मुझे नई दर सीमा प्राप्त करने के लिए 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 http://img10.yfrog.com/img10/5997/33201085434am.png

किसी भी विचार मैं गलत क्या कर रहा हूँ?

+1

आप किस विषय का उपयोग कर रहे हैं? :) –

+0

मुझे ट्विटर एपीआई के बारे में कुछ भी पता नहीं है, लेकिन अनुरोध में उपयोग किए गए एक्स-रेटलिमिट-सीमा हेडर नहीं होना चाहिए, प्रतिक्रिया के माध्यम से प्राप्त नहीं किया जाना चाहिए? – nothrow

+0

"मोरिया वैकल्पिक" विषय। –

उत्तर

1

कच्चे प्रतिक्रिया पाठ को देखें (उदाहरण के लिए, फिडलर के साथ)। यदि हेडर नहीं है, तो सी # कोड की कोई मात्रा दिखाई देने वाली नहीं है। :) जो आपने दिखाया है, ऐसा लगता है कि हेडर प्रतिक्रिया में नहीं है।

अद्यतन: जब मैं जाता हूं: http://twitter.com/account/rate_limit_status.xml कोई X-RateLimit-Limit शीर्षलेख नहीं है। लेकिन जब मैं http://twitter.com/statuses/public_timeline.xml पर जाता हूं, तो यह वहां होता है। तो मुझे लगता है कि आपको बस एक अलग विधि का उपयोग करने की आवश्यकता है।

यह अभी भी 150 कहता है! यदि यह अपेक्षा के अनुरूप, आप response.Headers पर नजर करते हैं और देखते हैं कि क्या वहाँ में है सकता है काम नहीं करता है

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

:

+2

धन्यवाद क्रेग। समस्या यह है कि 'rate_limit_status' सीमित दर नहीं है। न तो जिस विधि का मैं उपयोग कर रहा था ('access_token' OAuth विधि)। यदि मैं एक ऐसी विधि का उपयोग करता हूं जो सीमित है, जैसे 'public_timeline', यह वहां है। तो ऐसा लगता है कि ट्विटर केवल उन शीर्षकों के लिए उन हेडर मान भेजता है जो वास्तव में सीमित हैं। –

+0

यह लगभग समझ में आता है! –

9

आप सरल उपयोग करने के लिए सक्षम होना चाहिए।

+0

उम, वह पहले से ही उस घड़ी को किया था। पोस्ट में इसका एक स्क्रीनशॉट है ... –

+1

आह, मैं कंपनी फ़ायरवॉल पर वेबसाइटों की वजह से लिंक नहीं देख सका :( –

संबंधित मुद्दे