обрабатывать StatusCode == 302 при использовании HttpWebrequest - c # - PullRequest
0 голосов
/ 30 июля 2011

У меня есть приложение для Windows, которое я пытаюсь создать для имитации загрузки в веб-приложение.Проект находится на C # 3.0.

При использовании Fiddler я вижу следующую страницу

/ login - 200 код

введите pwd / uname

/ домашняя страница - код 302 / домашняя страница - код 200

/ страница загрузки [Эта страница содержит простую форму из нескольких частей, в которой пользователь может выбрать максимум 2 файла для загрузки] - код 200

/ страница с обработанным файлом - 302 кода / страница с обработанным файлом - 200 кодов

Когда я использую HttpWebrequest с объектом веб-ответа, я получаю

/ страницу входа - 200 код

введите pwd /uname

/ домашняя страница - код 200

/ страница загрузки [Эта страница содержит простую форму из нескольких частей, в которой пользователь может выбрать максимум 2 файла для загрузки] - 200 код

/ страница, обработанная файлом - код 302

У меня для SetAutoRedirect установлено значение true

Мой код

                Stream requestStream = request.GetRequestStream();
                requestStream.Write(bytes, 0, bytes.Length);
                requestStream.Write(buffer, 0, buffer.Length);
                FileStream stream2 = new FileStream(filePath, FileMode.Open, FileAccess.Read);
                byte[] buffer = new byte[0x1000];
                int count = 0;
                while ((count = stream2.Read(buffer, 0, buffer.Length)) != 0)
                {
                    requestStream.Write(buffer, 0, count);
                }
                bytes = Encoding.ASCII.GetBytes("\r\n--" + str2 + "--\r\n");
                requestStream.Write(bytes, 0, bytes.Length);
                requestStream.Close();
                stream.Close();
                HttpWebResponse response = request.GetResponse() as HttpWebResponse;
                if(response.StatusCode == HttpStatusCode.Found)
                {
                    string newURL = response.Headers["Location"];
                }

Как избежать ошибки 302 или как зарегистрироватьсядля этого, где я могу сделать успешную форму сообщения для имитации загрузки

1 Ответ

1 голос
/ 05 января 2012

У меня был похожий случай, когда я получил 302 кода состояния, когда ожидал возврата 200 (как в Fiddle или Firebug: вкладка net). Я смог решить эту проблему, предоставив HttpWebResponse

спецификацию пользовательского агента.
request.UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:2.0) Gecko/20100101 Firefox/4.0";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...