Frage

Ich habe ein ziemlich einfaches Programm, das in einer URL nimmt und spuckt den ersten Platz, es zu Umleitungen. Wie auch immer, ich habe auf ein paar Links zu testen es und bemerkte, bekommt 400 Fehler bei einigen URLs. Ich habe versucht, Testen eines solchen URLs, indem sie in meinem Browser einfügen und das hat gut funktioniert.

    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.
War es hilfreich?

Lösung

Ich denke, etwas seltsam ist mit Cookies geschieht. Es stellt sich heraus, dass aufgrund der Art, wie ich die Verbindung testet die notwendigen Cookies für sie zur Arbeit in meinem Browser waren aber nicht die Verbindung. Es stellt sich einige der Verbindungen I wurde manuell testen (wenn die anderen Links nicht) waren Cookies zu erzeugen.

Es ist leicht gefaltet, was passiert ist, aber die kurze Antwort ist, dass mein Browser Cookies hatte, war das Programm nicht, hat die Cookies zwischen Umleitungen Aufrechterhaltung nicht das Problem lösen.

Das zugrunde liegende Problem wird dadurch verursacht, dass die Verbindung I-Tests sind entweder einen zusätzlichen Parameter oder ein Cookie oder beides erfordert. Ich habe versucht, sowohl in meinen Tests zu vermeiden, da der Parameter / Cookie für die Verfolgung war und ich wollte nicht Tracking brechen.

Kurz gesagt, ich weiß, was das Problem ist, aber es ist nicht ein lösbares Problem.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top