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.
È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top