C # Link Analyzer riceve errori di richieste errate?
-
22-07-2019 - |
Domanda
Ho un programma piuttosto semplice che accetta un URL e sputa il primo posto a cui reindirizza. Ad ogni modo, l'ho provato su alcuni link e ho notato 400 errori su alcuni URL. Ho provato a testare tali URL incollandolo nel mio browser e ha funzionato bene.
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.
Soluzione
Penso che stia accadendo qualcosa di strano con i cookie. Si scopre che a causa del modo in cui stavo testando il collegamento, i cookie necessari per farlo funzionare erano nel mio browser ma non nel collegamento. Risulta che alcuni dei link che stavo testando manualmente (quando gli altri link fallivano) generavano cookie.
È leggermente contorto quello che è successo, ma la risposta breve è che il mio browser aveva i cookie, il programma no, il mantenimento dei cookie tra i reindirizzamenti non ha risolto il problema.
Il problema di fondo è causato dal fatto che il link che sto testando richiede un parametro aggiuntivo o un cookie o entrambi. Stavo cercando di evitare entrambi nei miei test poiché il parametro / cookie era per il tracciamento e non volevo interrompere il tracciamento.
In breve, so qual è il problema ma non è un problema risolvibile.