Comment lire l'en-tête HTTP de la réponse à l'aide .NET HttpWebRequest API?
Mon application utilise OAuth pour communiquer avec l'API Twitter. En décembre, Twitter a augmenté la limite de fréquence pour OAuth à 350 demandes par heure. Cependant, je ne suis pas le voir. Je suis encore en train 150 de la compte/rate_limit_status méthode.
M'a dit que j'avais besoin d'utiliser la X-RateLimit-Limit
en-tête HTTP pour obtenir la nouvelle limite de vitesse de. Cependant, dans mon code, je ne vois pas d'en-tête.
Voici mon 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();
}
}
Si je inspecter le response
, je peux voir qu'il a une propriété pour Headers
, et qu'il y en a 16 en-têtes. Cependant, je n'ai pas X-RateLimit-Limit
dans la liste.
Image http://img10.yfrog.com/img10/5997/33201085434am.png
Une idée de ce que je fais de mal?
non; il devrait être dans la réponse: apiwiki.twitter.com/Rate-limiting
le
request
n'en a que deux en-têtes: Content-Type et de l'Hôte. Et ceux qui sont RequestHeaders. Le X-RateLimit-Limit
vient de Twitter, donc j'aurais supposé qu'il serait dans la réponse.OriginalL'auteur Ryan Alford | 2010-03-03
Vous devez vous connecter pour publier un commentaire.
Regarder le raw texte de la réponse (par exemple, avec un violon). Si l'en-tête n'est pas là, aucune quantité de code C# va la faire apparaître. 🙂 De ce que vous avez montré, il semble que l'en-tête n'est pas dans la réponse.
Mise à jour: Quand je vais à: http://twitter.com/account/rate_limit_status.xml il n'y a pas de
X-RateLimit-Limit
en-tête. Mais quand je vais à http://twitter.com/statuses/public_timeline.xml, il est là. Donc, je pense que vous avez juste besoin d'utiliser une autre méthode.Il dit encore 150, si!
rate_limit_status
n'est pas limitée par la vitesse. Ni est la méthode que j'utilisais (leaccess_token
OAuth Méthode). Si j'utilise une méthode qui est limitée par la vitesse, comme lepublic_timeline
, il est là. Il semble donc que Twitter n'envoie ces valeurs d'en-tête pour les méthodes qui sont en fait limitée par la vitesse.Que près de sens!
OriginalL'auteur Craig Stuntz
Vous devriez simple:
Si cela ne fonctionne pas comme prévu, vous pouvez faire une veille sur la réponse.Les en-têtes et voir ce qui est là.
200 OK
. Si le serveur donne un550 Internal Server Error
ou un404 Not Found
, l'application va rompre avec unException
surGetResponse
.OriginalL'auteur Russ Clarke