Wie zu Lesen HTTP-header aus der Antwort mit .NET HttpWebRequest-API?
Meine app derzeit verwendet OAuth, um die Kommunikation mit der Twitter API. Im Dezember, Twitter steigerte die rate limit für OAuth zu 350 Anfragen pro Stunde. Ich bin jedoch nicht sehen diese. Ich bin noch immer 150 von der Konto/rate_limit_status Methode.
Wurde mir gesagt, dass ich brauchte, um das X-RateLimit-Limit
HTTP-header, um die neue rate zu begrenzen. Aber in meinem code, ich sehe nicht, dass header.
Hier ist mein code...
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();
}
}
Wenn ich überprüfen das response
kann ich sehen, dass es eine Eigenschaft für Headers
ist, und dass es 16-Header. Ich glaube aber nicht, haben X-RateLimit-Limit
in der Liste.
(Quelle: yfrog.com)
Irgendeine Idee, was ich falsch mache?
- Ich weiß nicht, nichts über die twitter-API, aber sollte nicht die X-RateLimit-Limit-header verwendet, die in der Anfrage nicht eingegangen wia Antwort?
- Nein, es sollte in der Antwort: apiwiki.twitter.com/Rate-limiting
- die
request
hat nur zwei Header: Content-Type und Host. Und die sind RequestHeaders. DieX-RateLimit-Limit
kommt von Twitter, so hätte ich angenommen, es wäre in der Antwort.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Blick auf die raw-Antwort-text (z.B. mit Fiddler). Wenn der header nicht da ist, kein Betrag von C# - code ist, wird es angezeigt. 🙂 Von dem, was Sie gezeigt haben, scheint es, dass die header nicht in der Antwort.
Update: Wenn ich auf: http://twitter.com/account/rate_limit_status.xml es gibt keine
X-RateLimit-Limit
header. Aber wenn ich auf http://twitter.com/statuses/public_timeline.xml, ist es da. Also ich denke, Sie müssen nur verwenden Sie eine andere Methode.Er sagt immer noch 150, aber!
rate_limit_status
nicht bewerten begrenzte. Weder war die Methode, die ich verwendet wurde (dieaccess_token
OAuth-Methode). Wenn ich eine Methode verwenden, die rate begrenzt, wie diepublic_timeline
, ist es da. Es scheint also, dass Twitter sendet nur diejenigen header-Werte für Methoden, die eigentlich rate begrenzt.Sollten Sie einfach in der Lage sein zu verwenden:
Wenn das nicht wie erwartet funktioniert, können Sie eine Uhr auf Antwort.Kopf-und sehen, was drin ist.
200 OK
. Wenn der server gibt eine550 Internal Server Error
oder eine404 Not Found
die Anwendung bricht mit einerException
aufGetResponse
.