Вопрос

У меня есть довольно простая программа, которая берет URL и выдает первое место, куда он перенаправляет. Во всяком случае, я тестировал его на некоторых ссылках и заметил, что получает 400 ошибок на некоторых URL. Я попытался протестировать такие URL-адреса, вставив их в свой браузер, и это сработало.

    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.
Это было полезно?

Решение

Я думаю, что с куки происходит что-то странное. Оказывается, из-за того, как я тестировал ссылку, необходимые файлы cookie для ее работы были в моем браузере, а не в ссылке. Оказывается, некоторые из ссылок, которые я тестировал вручную (когда другие ссылки не работали), генерировали файлы cookie.

То, что произошло, немного запутано, но вкратце я сказал, что в моем браузере были cookie-файлы, а в программе - сохранение cookie-файлов между перенаправлениями не решило проблему.

Основная проблема вызвана тем фактом, что тестируемая ссылка требует либо дополнительного параметра, либо файла cookie, либо обоих. Я пытался избежать обоих в моих тестах, так как параметр / cookie был для отслеживания, и я не хотел прерывать отслеживание.

Короче говоря, я знаю, в чем проблема, но это не решаемая проблема.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top