Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > HttpWebRequest - error 404 и борьба с ней


Автор: Imfibri 26.3.2010, 22:03
Добрый вечер. Такая проблема, прохожу по страницам сайта, но я не знаю сколько их + количество меняется. Пытаюсь посчитать таким образом.
Код

                                        for (int q = 2; ; q++)
                                        {
                                            if (HN.Attributes[i].Value[HN.Attributes[i].Value.Length - 1] == '/')
                                            {
                                                parsePath = HN.Attributes[i].Value + q + ".html";
                                            }
                                            else
                                            {
                                                parsePath = HN.Attributes[i].Value + "/" + q + ".html";
                                            }
                                            string temp = parsePath;
                                            parsePath = mainUrl + temp;
                                            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(parsePath);
                                            request.Method = "GET";
                                            try
                                            {
  >>>>>>>>>>>>>>>>>>      request.GetResponse();
                                                numberofpages++;
                                            }
                                            catch
                                            {
                                                break;
                                            }
                                        }

На 3 итерации тут >>>>>>>>> велетает;
Проблема  в том , что в новом проекте всё работает , как я хочу
Код

        static void Main(string[] args)
        {
            string url = "http://www.daler.ru/wallpapers/avia/100002.html";
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
            request.Method = "GET";
            try
            {
                request.GetResponse();
                Console.WriteLine("Ура");
            }
            catch
            {
                Console.WriteLine("***");
            }
        }



Что я делаю не так? Возможно есть другой, лучший алгоритм? 
Заранее спасибо.

Автор: Imfibri 27.3.2010, 10:51
Всё! Вопрос решён с помощью такой функции:
Код

public bool CheckExist(string url)
        {
            HttpWebRequest wreq = null;
            wreq.Method = "Head";
            HttpWebResponse wresp = null;
            bool ret = false;
            try
            {
                wreq = (HttpWebRequest)WebRequest.Create(url);
                wreq.KeepAlive = true;
                wresp = (HttpWebResponse)wreq.GetResponse();
                ret = true;
            }
            catch (System.Net.WebException)
            {
            }
            finally
            {
                if (wresp != null)
                    wresp.Close();
            }
            return ret;
        }

Автор: Dobermann 27.3.2010, 17:01
Цитата(Imfibri @  27.3.2010,  10:51 Найти цитируемый пост)
Всё! Вопрос решён с помощью такой функции:

Ты наконец догадался что существует HttpWebResponse smile 

Автор: Imfibri 27.3.2010, 17:23
Ну всё сразу узнать невозможно  smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)