2009-03-13 8 views
0

J'ai un programme assez simple qui prend une URL et crache le premier endroit vers lequel il redirige. Quoi qu'il en soit, je l'ai testé sur certains liens et j'ai remarqué 400 erreurs sur certaines URL. J'ai essayé de tester de telles URL en les collant dans mon navigateur et cela a bien fonctionné.Analyseur de liens C# obtenant des erreurs de demande incorrectes?

static string getLoc(string curLoc, out string StatusDescription, int timeoutmillseconds) 
    { 
     HttpWebRequest x = (HttpWebRequest)WebRequest.Create(curLoc);    
     x.UserAgent = "Opera/9.52 (Windows NT 6.0; U; en)"; 
     x.Timeout = timeoutmillseconds;    
     x.AllowAutoRedirect = false; 
     HttpWebResponse y = null; 
     try 
     { 
      y = (HttpWebResponse)x.GetResponse(); //At this point it throws a 400 bad request exception. 

Répondre

0

Je pense qu'il se passe quelque chose de bizarre avec les cookies. Il s'avère que, en raison de la façon dont je testais le lien, les cookies nécessaires pour que cela fonctionne étaient dans mon navigateur mais pas le lien. Il s'avère que certains des liens que je testais manuellement (lorsque les autres liens ont échoué) généraient des cookies.

Il est légèrement compliqué ce qui s'est passé, mais la réponse courte est que mon navigateur avait des cookies, le programme n'a pas, la maintenance des cookies entre les redirections n'a pas résolu le problème.

Le problème sous-jacent est dû au fait que le lien que je suis en train de tester nécessite un paramètre supplémentaire ou un cookie ou les deux. J'essayais d'éviter les deux dans mes tests puisque le paramètre/cookie était pour le suivi et je ne voulais pas casser le suivi. En bref, je sais quel est le problème mais ce n'est pas un problème résoluble.

+0

Si vous supprimez les cookies enregistrés par votre navigateur, puis désactivez les cookies, pouvez-vous quand même récupérer l'URL dans votre navigateur? –

+0

Non. C'est pourquoi je l'ai blâmé sur les cookies. – Brian

Questions connexes